From cbe92941a127ff38a8f6760b9ce7cfde9cfdda62 Mon Sep 17 00:00:00 2001 From: Jeff Date: Sat, 30 Sep 2023 15:50:20 -0400 Subject: [PATCH] Fix identifier regex --- corpus/lists.txt | 2 +- grammar.js | 2 +- src/grammar.json | 2 +- src/parser.c | 470 ++++++++++++++++++++++++++--------------------- 4 files changed, 259 insertions(+), 217 deletions(-) diff --git a/corpus/lists.txt b/corpus/lists.txt index 39f3c72..7eefd03 100644 --- a/corpus/lists.txt +++ b/corpus/lists.txt @@ -62,7 +62,7 @@ x = foobar.0 (identifier)) (operator) (expression - (identifier))))))) + (identifier)))))))) ================== List Mutation diff --git a/grammar.js b/grammar.js index c9ee822..cd2704e 100644 --- a/grammar.js +++ b/grammar.js @@ -30,7 +30,7 @@ module.exports = grammar({ $.tool, ), - identifier: $ => /[a-z|_|.]+/, + identifier: $ => /[a-z|_|.]+[0-9]?/, value: $ => choice( $.integer, diff --git a/src/grammar.json b/src/grammar.json index 92070a8..3c7ef65 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -111,7 +111,7 @@ }, "identifier": { "type": "PATTERN", - "value": "[a-z|_|.]+" + "value": "[a-z|_|.]+[0-9]?" }, "value": { "type": "CHOICE", diff --git a/src/parser.c b/src/parser.c index 726b0a4..5c911b0 100644 --- a/src/parser.c +++ b/src/parser.c @@ -709,46 +709,46 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '\'' || lookahead == '`') ADVANCE(33); if (lookahead == '#') ADVANCE(38); - if (lookahead == '%') ADVANCE(87); + if (lookahead == '%') ADVANCE(88); if (lookahead == '&') ADVANCE(2); if (lookahead == '(') ADVANCE(3); - if (lookahead == '*') ADVANCE(85); - if (lookahead == '+') ADVANCE(83); - if (lookahead == ',') ADVANCE(76); - if (lookahead == '-') ADVANCE(84); - if (lookahead == '/') ADVANCE(86); - if (lookahead == '<') ADVANCE(78); - if (lookahead == '=') ADVANCE(82); - if (lookahead == '>') ADVANCE(79); - if (lookahead == '[') ADVANCE(75); - if (lookahead == ']') ADVANCE(77); - if (lookahead == 'a') ADVANCE(56); - if (lookahead == 'e') ADVANCE(53); - if (lookahead == 'f') ADVANCE(61); - if (lookahead == 'i') ADVANCE(57); - if (lookahead == 'o') ADVANCE(62); - if (lookahead == 's') ADVANCE(47); - if (lookahead == 't') ADVANCE(51); - if (lookahead == 'w') ADVANCE(52); - if (lookahead == '{') ADVANCE(80); - if (lookahead == '|') ADVANCE(69); - if (lookahead == '}') ADVANCE(81); + if (lookahead == '*') ADVANCE(86); + if (lookahead == '+') ADVANCE(84); + if (lookahead == ',') ADVANCE(77); + if (lookahead == '-') ADVANCE(85); + if (lookahead == '/') ADVANCE(87); + if (lookahead == '<') ADVANCE(79); + if (lookahead == '=') ADVANCE(83); + if (lookahead == '>') ADVANCE(80); + if (lookahead == '[') ADVANCE(76); + if (lookahead == ']') ADVANCE(78); + if (lookahead == 'a') ADVANCE(57); + if (lookahead == 'e') ADVANCE(54); + if (lookahead == 'f') ADVANCE(62); + if (lookahead == 'i') ADVANCE(58); + if (lookahead == 'o') ADVANCE(63); + if (lookahead == 's') ADVANCE(48); + if (lookahead == 't') ADVANCE(52); + if (lookahead == 'w') ADVANCE(53); + if (lookahead == '{') ADVANCE(81); + if (lookahead == '|') ADVANCE(70); + if (lookahead == '}') ADVANCE(82); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(73); if (lookahead == '.' || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(70); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(71); END_STATE(); case 1: - if (lookahead == '%') ADVANCE(87); + if (lookahead == '%') ADVANCE(88); if (lookahead == '&') ADVANCE(2); - if (lookahead == '*') ADVANCE(85); - if (lookahead == '+') ADVANCE(83); - if (lookahead == '-') ADVANCE(84); - if (lookahead == '/') ADVANCE(86); - if (lookahead == '=') ADVANCE(82); + if (lookahead == '*') ADVANCE(86); + if (lookahead == '+') ADVANCE(84); + if (lookahead == '-') ADVANCE(85); + if (lookahead == '/') ADVANCE(87); + if (lookahead == '=') ADVANCE(83); if (lookahead == 'a') ADVANCE(19); if (lookahead == 'e') ADVANCE(16); if (lookahead == 'f') ADVANCE(24); @@ -764,10 +764,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == ' ') SKIP(1) END_STATE(); case 2: - if (lookahead == '&') ADVANCE(91); + if (lookahead == '&') ADVANCE(92); END_STATE(); case 3: - if (lookahead == ')') ADVANCE(74); + if (lookahead == ')') ADVANCE(75); END_STATE(); case 4: if (lookahead == '>') ADVANCE(41); @@ -776,16 +776,16 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 'c') ADVANCE(31); END_STATE(); case 6: - if (lookahead == 'd') ADVANCE(94); + if (lookahead == 'd') ADVANCE(95); END_STATE(); case 7: - if (lookahead == 'e') ADVANCE(110); + if (lookahead == 'e') ADVANCE(111); END_STATE(); case 8: if (lookahead == 'e') ADVANCE(5); END_STATE(); case 9: - if (lookahead == 'e') ADVANCE(106); + if (lookahead == 'e') ADVANCE(107); END_STATE(); case 10: if (lookahead == 'e') ADVANCE(17); @@ -812,7 +812,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 'l') ADVANCE(8); END_STATE(); case 18: - if (lookahead == 'm') ADVANCE(104); + if (lookahead == 'm') ADVANCE(105); END_STATE(); case 19: if (lookahead == 'n') ADVANCE(6); @@ -821,19 +821,19 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 'n') ADVANCE(29); END_STATE(); case 21: - if (lookahead == 'n') ADVANCE(108); + if (lookahead == 'n') ADVANCE(109); END_STATE(); case 22: if (lookahead == 'o') ADVANCE(18); END_STATE(); case 23: - if (lookahead == 'o') ADVANCE(100); + if (lookahead == 'o') ADVANCE(101); END_STATE(); case 24: if (lookahead == 'r') ADVANCE(22); END_STATE(); case 25: - if (lookahead == 'r') ADVANCE(96); + if (lookahead == 'r') ADVANCE(97); END_STATE(); case 26: if (lookahead == 'r') ADVANCE(30); @@ -849,18 +849,18 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 't') ADVANCE(23); END_STATE(); case 30: - if (lookahead == 't') ADVANCE(98); + if (lookahead == 't') ADVANCE(99); END_STATE(); case 31: - if (lookahead == 't') ADVANCE(102); + if (lookahead == 't') ADVANCE(103); END_STATE(); case 32: - if (lookahead == '|') ADVANCE(92); + if (lookahead == '|') ADVANCE(93); END_STATE(); case 33: if (lookahead == '"' || lookahead == '\'' || - lookahead == '`') ADVANCE(73); + lookahead == '`') ADVANCE(74); if (lookahead != 0 && lookahead != '\n') ADVANCE(33); END_STATE(); @@ -870,32 +870,32 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '\'' || lookahead == '`') ADVANCE(33); if (lookahead == '#') ADVANCE(38); - if (lookahead == '%') ADVANCE(87); + if (lookahead == '%') ADVANCE(88); if (lookahead == '&') ADVANCE(2); if (lookahead == '(') ADVANCE(3); - if (lookahead == '*') ADVANCE(85); - if (lookahead == '+') ADVANCE(83); - if (lookahead == ',') ADVANCE(76); - if (lookahead == '-') ADVANCE(84); - if (lookahead == '/') ADVANCE(86); - if (lookahead == '=') ADVANCE(82); - if (lookahead == '[') ADVANCE(75); - if (lookahead == ']') ADVANCE(77); - if (lookahead == 'a') ADVANCE(56); - if (lookahead == 'f') ADVANCE(61); - if (lookahead == 'i') ADVANCE(57); - if (lookahead == 'o') ADVANCE(62); - if (lookahead == 's') ADVANCE(47); - if (lookahead == 'w') ADVANCE(52); - if (lookahead == '|') ADVANCE(69); - if (lookahead == '}') ADVANCE(81); + if (lookahead == '*') ADVANCE(86); + if (lookahead == '+') ADVANCE(84); + if (lookahead == ',') ADVANCE(77); + if (lookahead == '-') ADVANCE(85); + if (lookahead == '/') ADVANCE(87); + if (lookahead == '=') ADVANCE(83); + if (lookahead == '[') ADVANCE(76); + if (lookahead == ']') ADVANCE(78); + if (lookahead == 'a') ADVANCE(57); + if (lookahead == 'f') ADVANCE(62); + if (lookahead == 'i') ADVANCE(58); + if (lookahead == 'o') ADVANCE(63); + if (lookahead == 's') ADVANCE(48); + if (lookahead == 'w') ADVANCE(53); + if (lookahead == '|') ADVANCE(70); + if (lookahead == '}') ADVANCE(82); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(34) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(73); if (lookahead == '.' || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(70); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(71); END_STATE(); case 35: if (eof) ADVANCE(37); @@ -903,31 +903,31 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '\'' || lookahead == '`') ADVANCE(33); if (lookahead == '#') ADVANCE(38); - if (lookahead == '%') ADVANCE(87); + if (lookahead == '%') ADVANCE(88); if (lookahead == '&') ADVANCE(2); if (lookahead == '(') ADVANCE(3); - if (lookahead == '*') ADVANCE(85); - if (lookahead == '+') ADVANCE(83); - if (lookahead == '-') ADVANCE(84); - if (lookahead == '/') ADVANCE(86); - if (lookahead == '=') ADVANCE(82); - if (lookahead == '[') ADVANCE(75); - if (lookahead == 'a') ADVANCE(56); - if (lookahead == 'e') ADVANCE(53); - if (lookahead == 'f') ADVANCE(61); - if (lookahead == 'i') ADVANCE(57); - if (lookahead == 'o') ADVANCE(62); - if (lookahead == 's') ADVANCE(47); - if (lookahead == 'w') ADVANCE(52); - if (lookahead == '|') ADVANCE(69); - if (lookahead == '}') ADVANCE(81); + if (lookahead == '*') ADVANCE(86); + if (lookahead == '+') ADVANCE(84); + if (lookahead == '-') ADVANCE(85); + if (lookahead == '/') ADVANCE(87); + if (lookahead == '=') ADVANCE(83); + if (lookahead == '[') ADVANCE(76); + if (lookahead == 'a') ADVANCE(57); + if (lookahead == 'e') ADVANCE(54); + if (lookahead == 'f') ADVANCE(62); + if (lookahead == 'i') ADVANCE(58); + if (lookahead == 'o') ADVANCE(63); + if (lookahead == 's') ADVANCE(48); + if (lookahead == 'w') ADVANCE(53); + if (lookahead == '|') ADVANCE(70); + if (lookahead == '}') ADVANCE(82); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(35) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(73); if (lookahead == '.' || - ('_' <= lookahead && lookahead <= 'z')) ADVANCE(70); + ('_' <= lookahead && lookahead <= 'z')) ADVANCE(71); END_STATE(); case 36: if (eof) ADVANCE(37); @@ -936,20 +936,20 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '`') ADVANCE(33); if (lookahead == '#') ADVANCE(38); if (lookahead == '(') ADVANCE(3); - if (lookahead == ',') ADVANCE(76); + if (lookahead == ',') ADVANCE(77); if (lookahead == '-') ADVANCE(4); - if (lookahead == '>') ADVANCE(79); - if (lookahead == '[') ADVANCE(75); - if (lookahead == ']') ADVANCE(77); - if (lookahead == '}') ADVANCE(81); + if (lookahead == '>') ADVANCE(80); + if (lookahead == '[') ADVANCE(76); + if (lookahead == ']') ADVANCE(78); + if (lookahead == '}') ADVANCE(82); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(36) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(73); if (lookahead == '.' || ('_' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 37: ACCEPT_TOKEN(ts_builtin_sym_end); @@ -975,409 +975,451 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 42: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'c') ADVANCE(68); - if (lookahead == '.' || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); END_STATE(); case 43: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'd') ADVANCE(95); + if (lookahead == 'c') ADVANCE(69); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 44: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(111); + if (lookahead == 'd') ADVANCE(96); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 45: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(42); + if (lookahead == 'e') ADVANCE(112); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 46: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(107); + if (lookahead == 'e') ADVANCE(43); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 47: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(54); + if (lookahead == 'e') ADVANCE(108); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 48: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(58); + if (lookahead == 'e') ADVANCE(55); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 49: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(64); + if (lookahead == 'e') ADVANCE(59); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 50: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'e') ADVANCE(63); + if (lookahead == 'e') ADVANCE(65); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 51: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'h') ADVANCE(48); + if (lookahead == 'e') ADVANCE(64); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 52: ACCEPT_TOKEN(sym_identifier); if (lookahead == 'h') ADVANCE(49); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 53: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(65); + if (lookahead == 'h') ADVANCE(50); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 54: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'l') ADVANCE(45); + if (lookahead == 'l') ADVANCE(66); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 55: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'm') ADVANCE(105); + if (lookahead == 'l') ADVANCE(46); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 56: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'n') ADVANCE(43); + if (lookahead == 'm') ADVANCE(106); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 57: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'n') ADVANCE(66); + if (lookahead == 'n') ADVANCE(44); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 58: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'n') ADVANCE(109); + if (lookahead == 'n') ADVANCE(67); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 59: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'o') ADVANCE(55); + if (lookahead == 'n') ADVANCE(110); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 60: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'o') ADVANCE(101); + if (lookahead == 'o') ADVANCE(56); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 61: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'r') ADVANCE(59); + if (lookahead == 'o') ADVANCE(102); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 62: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'r') ADVANCE(97); + if (lookahead == 'r') ADVANCE(60); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 63: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'r') ADVANCE(67); + if (lookahead == 'r') ADVANCE(98); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 64: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'r') ADVANCE(46); + if (lookahead == 'r') ADVANCE(68); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 65: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 's') ADVANCE(44); + if (lookahead == 'r') ADVANCE(47); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 66: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 's') ADVANCE(50); - if (lookahead == 't') ADVANCE(60); + if (lookahead == 's') ADVANCE(45); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 67: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(99); + if (lookahead == 's') ADVANCE(51); + if (lookahead == 't') ADVANCE(61); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 68: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 't') ADVANCE(103); + if (lookahead == 't') ADVANCE(100); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); case 69: ACCEPT_TOKEN(sym_identifier); - if (lookahead == '|') ADVANCE(93); + if (lookahead == 't') ADVANCE(104); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(70); + ('a' <= lookahead && lookahead <= 'z') || + lookahead == '|') ADVANCE(71); END_STATE(); case 70: ACCEPT_TOKEN(sym_identifier); + if (lookahead == '|') ADVANCE(94); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); + if (lookahead == '.' || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(71); + END_STATE(); + case 71: + ACCEPT_TOKEN(sym_identifier); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); - END_STATE(); - case 71: - ACCEPT_TOKEN(sym_float); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(71); + lookahead == '|') ADVANCE(71); END_STATE(); case 72: - ACCEPT_TOKEN(sym_integer); - if (lookahead == '.') ADVANCE(71); + ACCEPT_TOKEN(sym_float); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); END_STATE(); case 73: + ACCEPT_TOKEN(sym_integer); + if (lookahead == '.') ADVANCE(72); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(73); + END_STATE(); + case 74: ACCEPT_TOKEN(sym_string); if (lookahead == '"' || lookahead == '\'' || - lookahead == '`') ADVANCE(73); + lookahead == '`') ADVANCE(74); if (lookahead != 0 && lookahead != '\n') ADVANCE(33); END_STATE(); - case 74: + case 75: ACCEPT_TOKEN(sym_empty); END_STATE(); - case 75: + case 76: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 76: + case 77: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); - case 77: + case 78: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); - case 78: + case 79: ACCEPT_TOKEN(anon_sym_LT); END_STATE(); - case 79: + case 80: ACCEPT_TOKEN(anon_sym_GT); END_STATE(); - case 80: + case 81: ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); - case 81: + case 82: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); - case 82: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(88); - END_STATE(); case 83: - ACCEPT_TOKEN(anon_sym_PLUS); + ACCEPT_TOKEN(anon_sym_EQ); if (lookahead == '=') ADVANCE(89); END_STATE(); case 84: - ACCEPT_TOKEN(anon_sym_DASH); + ACCEPT_TOKEN(anon_sym_PLUS); if (lookahead == '=') ADVANCE(90); - if (lookahead == '>') ADVANCE(41); END_STATE(); case 85: - ACCEPT_TOKEN(anon_sym_STAR); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '=') ADVANCE(91); + if (lookahead == '>') ADVANCE(41); END_STATE(); case 86: - ACCEPT_TOKEN(anon_sym_SLASH); + ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 87: - ACCEPT_TOKEN(anon_sym_PERCENT); + ACCEPT_TOKEN(anon_sym_SLASH); END_STATE(); case 88: - ACCEPT_TOKEN(anon_sym_EQ_EQ); + ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); case 89: - ACCEPT_TOKEN(anon_sym_PLUS_EQ); + ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); case 90: - ACCEPT_TOKEN(anon_sym_DASH_EQ); + ACCEPT_TOKEN(anon_sym_PLUS_EQ); END_STATE(); case 91: - ACCEPT_TOKEN(anon_sym_AMP_AMP); + ACCEPT_TOKEN(anon_sym_DASH_EQ); END_STATE(); case 92: - ACCEPT_TOKEN(anon_sym_PIPE_PIPE); + ACCEPT_TOKEN(anon_sym_AMP_AMP); END_STATE(); case 93: ACCEPT_TOKEN(anon_sym_PIPE_PIPE); + END_STATE(); + case 94: + ACCEPT_TOKEN(anon_sym_PIPE_PIPE); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); - END_STATE(); - case 94: - ACCEPT_TOKEN(anon_sym_and); + lookahead == '|') ADVANCE(71); END_STATE(); case 95: ACCEPT_TOKEN(anon_sym_and); + END_STATE(); + case 96: + ACCEPT_TOKEN(anon_sym_and); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); - END_STATE(); - case 96: - ACCEPT_TOKEN(anon_sym_or); + lookahead == '|') ADVANCE(71); END_STATE(); case 97: ACCEPT_TOKEN(anon_sym_or); + END_STATE(); + case 98: + ACCEPT_TOKEN(anon_sym_or); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); - END_STATE(); - case 98: - ACCEPT_TOKEN(anon_sym_insert); + lookahead == '|') ADVANCE(71); END_STATE(); case 99: ACCEPT_TOKEN(anon_sym_insert); + END_STATE(); + case 100: + ACCEPT_TOKEN(anon_sym_insert); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); - END_STATE(); - case 100: - ACCEPT_TOKEN(anon_sym_into); + lookahead == '|') ADVANCE(71); END_STATE(); case 101: ACCEPT_TOKEN(anon_sym_into); + END_STATE(); + case 102: + ACCEPT_TOKEN(anon_sym_into); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); - END_STATE(); - case 102: - ACCEPT_TOKEN(anon_sym_select); + lookahead == '|') ADVANCE(71); END_STATE(); case 103: ACCEPT_TOKEN(anon_sym_select); + END_STATE(); + case 104: + ACCEPT_TOKEN(anon_sym_select); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); - END_STATE(); - case 104: - ACCEPT_TOKEN(anon_sym_from); + lookahead == '|') ADVANCE(71); END_STATE(); case 105: ACCEPT_TOKEN(anon_sym_from); + END_STATE(); + case 106: + ACCEPT_TOKEN(anon_sym_from); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); - END_STATE(); - case 106: - ACCEPT_TOKEN(anon_sym_where); + lookahead == '|') ADVANCE(71); END_STATE(); case 107: ACCEPT_TOKEN(anon_sym_where); + END_STATE(); + case 108: + ACCEPT_TOKEN(anon_sym_where); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); - END_STATE(); - case 108: - ACCEPT_TOKEN(anon_sym_then); + lookahead == '|') ADVANCE(71); END_STATE(); case 109: ACCEPT_TOKEN(anon_sym_then); + END_STATE(); + case 110: + ACCEPT_TOKEN(anon_sym_then); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); - END_STATE(); - case 110: - ACCEPT_TOKEN(anon_sym_else); + lookahead == '|') ADVANCE(71); END_STATE(); case 111: ACCEPT_TOKEN(anon_sym_else); + END_STATE(); + case 112: + ACCEPT_TOKEN(anon_sym_else); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(70); + lookahead == '|') ADVANCE(71); END_STATE(); default: return false;