From 76927b80247a348ea92732e0cf15e6beb2d56826 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sun, 7 Jun 2015 20:08:22 -0700 Subject: * parser.c (stream_parser_hash): New static variable. (parser_mark): Mark parser and primer members. (parser, ensure_parser): new argument: primer. (get_parser_impl, ensure_parser): New static functions. (prime_parser): New function. (lisp_parse): Multiple calls to this function on the same stream now logically continue the parse, not resetting the line number to 1. (parse_init): Initialize and gc-protect stream_parser_hash. * parser.h (parser_t): New members, primer and parser. (prime_parser): Declared. (parser): Declaration updated. * parser.y (parse): Now responsible for calling prime_parser. --- parser.y | 1 + 1 file changed, 1 insertion(+) (limited to 'parser.y') diff --git a/parser.y b/parser.y index ceb1801b..c1eb74d8 100644 --- a/parser.y +++ b/parser.y @@ -1459,6 +1459,7 @@ int parse(parser_t *parser) parser->errors = 0; parser->prepared_msg = nil; parser->syntax_tree = nil; + prime_parser(parser->parser); yylex_init(&scanner); parser->scanner = convert(scanner_t *, scanner); -- cgit v1.2.3