src/Pure/Syntax/parser.ML
changeset 40959 49765c1104d4
parent 38875 c7a66b584147
child 41378 55286df6a423
equal deleted inserted replaced
40958:755f8fe7ced9 40959:49765c1104d4
   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