digraph { gfe [label = "file.gfe", style = "solid", shape = "plaintext"]; gfe -> gf1 [label = " MkConcrete", style = "dotted"]; gf1 [label = "file.gf", style = "solid", shape = "plaintext"]; gf1 -> gf2 [label = " LexGF", style = "solid"]; gf2 [label = "token list", style = "solid", shape = "plaintext"]; gf2 -> gf3 [label = " ParGF", style = "solid"]; gf3 [label = "source tree", style = "solid", shape = "plaintext"]; gf3 -> gf4 [label = " SourceToGrammar", style = "solid"]; cf [label = "file.cf", style = "solid", shape = "plaintext"]; cf -> gf4 [label = " CF.PPrCF", style = "dotted"]; ebnf [label = "file.ebnf", style = "solid", shape = "plaintext"]; ebnf -> gf4 [label = " CF.EBNF", style = "dotted"]; gf4 [label = "GF tree", style = "solid", shape = "plaintext"]; gf4 -> gf5 [label = " Extend", style = "solid"]; gf5 [label = "inheritance-linked GF tree", style = "solid", shape = "plaintext"]; gf5 -> gf6 [label = " Rename", style = "solid"]; gf6 [label = "name-resolved GF tree", style = "solid", shape = "plaintext"]; gf6 -> gf7 [label = " CheckGrammar", style = "solid"]; gf7 [label = "type-annotated GF tree", style = "solid", shape = "plaintext"]; gf7 -> gf8 [label = " Optimize", style = "solid"]; gf8 [label = "optimized GF tree", style = "solid", shape = "plaintext"]; gf8 -> gf9 [label = " GrammarToCanon", style = "solid"]; gf9 [label = "GFC tree", style = "solid", shape = "plaintext"]; gf9 -> gfc [label = " BackOpt", style = "solid"]; gfc [label = "optimized GFC tree", style = "solid", shape = "plaintext"]; gfc -> gf11 [label = " PrintGFC", style = "solid"]; gf11 [label = "file.gfc", style = "solid", shape = "plaintext"]; mcfg [label = "file.gfcm", style = "solid", shape = "plaintext"]; gfc -> mcfg [label = " PrintGFC", style = "dotted"]; bnf [label = "file.cf", style = "solid", shape = "plaintext"]; gfc -> bnf [label = " CF.PrLBNF", style = "dotted"]; happy [label = "file.y (Happy)", style = "solid", shape = "plaintext"]; bnf -> happy [label = " bnfc", style = "dotted"]; bison [label = "file.y (Bison)", style = "solid", shape = "plaintext"]; bnf -> bison [label = " bnfc", style = "dotted"]; cup [label = "parser.java (CUP)", style = "solid", shape = "plaintext"]; bnf -> cup [label = " bnfc", style = "dotted"]; xml [label = "file.dtd (XML)", style = "solid", shape = "plaintext"]; bnf -> xml [label = " bnfc", style = "dotted"]; cfg [label = "file.cfg", style = "solid", shape = "plaintext"]; gfc -> cfg [label = " Conversions.GFC", style = "dotted"]; cfgm [label = "file.cfgm", style = "solid", shape = "plaintext"]; gfc -> cfgm [label = " Conversions.GFC", style = "dotted"]; srg [label = "Non-LR CFG", style = "solid", shape = "plaintext"]; cfg -> srg [label = " Speech.SRG", style = "dotted"]; gsl [label = "file.gsl", style = "solid", shape = "plaintext"]; srg -> gsl [label = " Speech.PrGSL", style = "dotted"]; jsgf [label = "file.jsgf", style = "solid", shape = "plaintext"]; srg -> jsgf [label = " Speech.PrJSGF", style = "dotted"]; fa [label = "DFA", style = "solid", shape = "plaintext"]; cfg -> fa [label = " Speech.CFGToFiniteState", style = "dotted"]; slf [label = "file.slf", style = "solid", shape = "plaintext"]; fa -> slf [label = " Speech.PrSLF", style = "dotted"]; }