equal
deleted
inserted
replaced
839 fun earley ctxt prods tags chains startsymbol indata = |
839 fun earley ctxt prods tags chains startsymbol indata = |
840 let |
840 let |
841 val start_tag = |
841 val start_tag = |
842 (case Symtab.lookup tags startsymbol of |
842 (case Symtab.lookup tags startsymbol of |
843 SOME tag => tag |
843 SOME tag => tag |
844 | NONE => error ("Inner syntax: unknown startsymbol " ^ quote startsymbol)); |
844 | NONE => error ("Inner syntax: bad grammar root symbol " ^ quote startsymbol)); |
845 val S0 = [(~1, 0, [], [Nonterminal (start_tag, 0), Terminal Lexicon.eof], "", 0)]; |
845 val S0 = [(~1, 0, [], [Nonterminal (start_tag, 0), Terminal Lexicon.eof], "", 0)]; |
846 val s = length indata + 1; |
846 val s = length indata + 1; |
847 val Estate = Array.array (s, []); |
847 val Estate = Array.array (s, []); |
848 val _ = Array.update (Estate, 0, S0); |
848 val _ = Array.update (Estate, 0, S0); |
849 in |
849 in |