From d765332c612c9b2cc38717439bca66dd463802c1 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 31 Oct 2019 14:32:10 -0700 Subject: [PATCH] Don't rely on new eof ABI in parsers unless --next-abi is passed --- cli/src/generate/render.rs | 7 +++++++ lib/include/tree_sitter/parser.h | 3 +-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cli/src/generate/render.rs b/cli/src/generate/render.rs index be4b5681..7b663560 100644 --- a/cli/src/generate/render.rs +++ b/cli/src/generate/render.rs @@ -513,6 +513,13 @@ impl Generator { ); indent!(self); add_line!(self, "START_LEXER();"); + + if self.next_abi { + add_line!(self, "eof = lexer->eof(lexer);"); + } else { + add_line!(self, "eof = lookahead == 0;"); + } + add_line!(self, "switch (state) {{"); indent!(self); diff --git a/lib/include/tree_sitter/parser.h b/lib/include/tree_sitter/parser.h index 73e7889c..c28e9d5c 100644 --- a/lib/include/tree_sitter/parser.h +++ b/lib/include/tree_sitter/parser.h @@ -134,8 +134,7 @@ struct TSLanguage { lexer->advance(lexer, skip); \ start: \ skip = false; \ - lookahead = lexer->lookahead; \ - eof = lexer->eof(lexer); + lookahead = lexer->lookahead; #define ADVANCE(state_value) \ { \