From c4fe8ded95afddd0ff0728370c0831461eba6b7e Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 5 Dec 2016 16:36:34 -0800 Subject: [PATCH] Remove state argument to Lexer advance method --- include/tree_sitter/parser.h | 6 +++--- spec/fixtures/external_scanners/external_scan.c | 16 ++++++++-------- src/runtime/lexer.c | 6 +++--- src/runtime/parser.c | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/include/tree_sitter/parser.h b/include/tree_sitter/parser.h index e099fd7f..27113e32 100644 --- a/include/tree_sitter/parser.h +++ b/include/tree_sitter/parser.h @@ -23,7 +23,7 @@ typedef struct { } TSSymbolMetadata; typedef struct { - void (*advance)(void *, TSStateId, bool); + void (*advance)(void *, bool); int32_t lookahead; TSSymbol result_symbol; } TSLexer; @@ -92,14 +92,14 @@ typedef struct TSLanguage { #define ADVANCE(state_value) \ { \ - lexer->advance(lexer, state_value, false); \ + lexer->advance(lexer, false); \ state = state_value; \ goto next_state; \ } #define SKIP(state_value) \ { \ - lexer->advance(lexer, state_value, true); \ + lexer->advance(lexer, true); \ state = state_value; \ goto next_state; \ } diff --git a/spec/fixtures/external_scanners/external_scan.c b/spec/fixtures/external_scanners/external_scan.c index 41ef3706..9e7a7d12 100644 --- a/spec/fixtures/external_scanners/external_scan.c +++ b/spec/fixtures/external_scanners/external_scan.c @@ -31,11 +31,11 @@ bool ts_language_external_scanner_example_external_scanner_scan( while (lexer->lookahead == ' ' || lexer->lookahead == '\t' || lexer->lookahead == '\n') { - lexer->advance(lexer, 0, true); + lexer->advance(lexer, true); } if (lexer->lookahead != '%') return false; - lexer->advance(lexer, 0, false); + lexer->advance(lexer, false); switch (lexer->lookahead) { case '(': @@ -57,7 +57,7 @@ bool ts_language_external_scanner_example_external_scanner_scan( return false; } - lexer->advance(lexer, 0, false); + lexer->advance(lexer, false); for (;;) { if (scanner->depth == 0) { @@ -70,19 +70,19 @@ bool ts_language_external_scanner_example_external_scanner_scan( } else if (lexer->lookahead == scanner->close_delimiter) { scanner->depth--; } else if (lexer->lookahead == '#') { - lexer->advance(lexer, 0, false); + lexer->advance(lexer, false); if (lexer->lookahead == '{') { - lexer->advance(lexer, 0, false); + lexer->advance(lexer, false); lexer->result_symbol = percent_string_start; return true; } } - lexer->advance(lexer, 0, false); + lexer->advance(lexer, false); } } else if (whitelist[percent_string_end]) { if (lexer->lookahead != '}') return false; - lexer->advance(lexer, 0, false); + lexer->advance(lexer, false); for (;;) { if (scanner->depth == 0) { @@ -96,7 +96,7 @@ bool ts_language_external_scanner_example_external_scanner_scan( scanner->depth--; } - lexer->advance(lexer, 0, false); + lexer->advance(lexer, false); } } diff --git a/src/runtime/lexer.c b/src/runtime/lexer.c index 77d76ec6..b39eb599 100644 --- a/src/runtime/lexer.c +++ b/src/runtime/lexer.c @@ -46,7 +46,7 @@ static void ts_lexer__get_lookahead(Lexer *self) { LOG_LOOKAHEAD(); } -static void ts_lexer__advance(void *payload, TSStateId state, bool skip) { +static void ts_lexer__advance(void *payload, bool skip) { Lexer *self = (Lexer *)payload; if (self->chunk == empty_chunk) return; @@ -63,10 +63,10 @@ static void ts_lexer__advance(void *payload, TSStateId state, bool skip) { } if (skip) { - LOG("skip_separator state:%d", state); + LOG("skip_separator"); self->token_start_position = self->current_position; } else { - LOG("advance state:%d", state); + LOG("advance"); } if (self->current_position.bytes >= self->chunk_start + self->chunk_size) diff --git a/src/runtime/parser.c b/src/runtime/parser.c index a3f38730..3ec4338d 100644 --- a/src/runtime/parser.c +++ b/src/runtime/parser.c @@ -269,7 +269,7 @@ static Tree *parser__lex(Parser *self, TSStateId parse_state) { self->lexer.data.result_symbol = ts_builtin_sym_error; break; } - self->lexer.data.advance(&self->lexer, ERROR_STATE, false); + self->lexer.data.advance(&self->lexer, false); } skipped_error = true;