anchor.diff:              out.WriteLine ("    " + b.ToString() + " -> " + e.ToString() + " [" + bold + "label=\"" + label + "\"" + "]")
           let createEpsilon ind = 
               let res = next()
  -            createNode res false AstNode ("n " + indToString (-1-ind))
  +            createNode res false false AstNode ("n " + indToString (-1-ind))
               let u = next()
  -            createNode u false AstNode "eps"
  +            createNode u false false AstNode "eps"
               createEdge res u true ""
               res
           let createTerm t =
               let res = next()
  -            createNode res false AstNode ("t " + indToString (tokenToNumber tokens.[t]))
  +            createNode res false true AstNode ("t " + indToString (tokenToNumber tokens.[t]))
               res
           (*if not isEpsilon then*)
           //for i in order do
  
positive.code: 
          use out = new System.IO.StreamWriter (path : string)
          out.WriteLine("digraph AST {")
          let createNode num isAmbiguous nodeType (str : string) =
              let label =
                  let cur = str.Replace("\n", "\\n").Replace ("\r", "")
                  if not isAmbiguous then cur
  
negative.code:                 | AstNode -> ",shape=box"
                  | Prod -> ""
              let color =
                  if isTerminal then ",style=\"filled\",fillcolor=gray"
                  elif not isAmbiguous then ""
                  else ",style=\"filled\",fillcolor=red"
              out.WriteLine ("    " + num.ToString() + " [label=\"" + label + "\"" + color + shape + "]")
          let createEdge (b : int) (e : int) isBold (str : string) =
  