summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmaan Qureshi <amaanq12@gmail.com>2023-10-04 21:19:11 -0400
committerAmaan Qureshi <amaanq12@gmail.com>2023-10-04 21:19:11 -0400
commit1c5435cb0d85deb68f0eeb46f1ba6f4176ff4a3b (patch)
tree86553abc1501a9c08edcbf39f1bfe9a69be83996
parentaebbb7f16792d38aa3b7f5f8087e4abefae175de (diff)
chore: generate
-rw-r--r--src/grammar.json366
-rw-r--r--src/parser.c273
-rw-r--r--src/tree_sitter/parser.h12
3 files changed, 210 insertions, 441 deletions
diff --git a/src/grammar.json b/src/grammar.json
index e9f60450e..8bb832992 100644
--- a/src/grammar.json
+++ b/src/grammar.json
@@ -250,106 +250,88 @@
"type": "SEQ",
"members": [
{
- "type": "CHOICE",
+ "type": "SEQ",
"members": [
{
- "type": "STRING",
- "value": "0x"
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "-"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
},
{
- "type": "STRING",
- "value": "0X"
- }
- ]
- },
- {
- "type": "PATTERN",
- "value": "[\\da-fA-F]+"
- }
- ]
- },
- {
- "type": "CHOICE",
- "members": [
- {
- "type": "SEQ",
- "members": [
- {
- "type": "SEQ",
+ "type": "CHOICE",
"members": [
{
- "type": "CHOICE",
- "members": [
- {
- "type": "CHOICE",
- "members": [
- {
- "type": "STRING",
- "value": "-"
- },
- {
- "type": "STRING",
- "value": "+"
- }
- ]
- },
- {
- "type": "BLANK"
- }
- ]
+ "type": "STRING",
+ "value": "0"
},
{
- "type": "CHOICE",
+ "type": "SEQ",
"members": [
{
- "type": "STRING",
- "value": "0"
+ "type": "PATTERN",
+ "value": "[1-9]"
},
{
- "type": "SEQ",
+ "type": "CHOICE",
"members": [
{
"type": "PATTERN",
- "value": "[1-9]"
+ "value": "\\d+"
},
{
- "type": "CHOICE",
- "members": [
- {
- "type": "PATTERN",
- "value": "\\d+"
- },
- {
- "type": "BLANK"
- }
- ]
+ "type": "BLANK"
}
]
}
]
}
]
- },
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ },
+ {
+ "type": "CHOICE",
+ "members": [
{
- "type": "STRING",
- "value": "."
+ "type": "PATTERN",
+ "value": "\\d+"
},
{
- "type": "CHOICE",
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
"members": [
{
- "type": "PATTERN",
- "value": "\\d+"
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "e"
+ },
+ {
+ "type": "STRING",
+ "value": "E"
+ }
+ ]
},
{
- "type": "BLANK"
- }
- ]
- },
- {
- "type": "CHOICE",
- "members": [
- {
"type": "SEQ",
"members": [
{
@@ -357,124 +339,80 @@
"members": [
{
"type": "STRING",
- "value": "e"
+ "value": "-"
},
{
- "type": "STRING",
- "value": "E"
+ "type": "BLANK"
}
]
},
{
- "type": "SEQ",
- "members": [
- {
- "type": "CHOICE",
- "members": [
- {
- "type": "CHOICE",
- "members": [
- {
- "type": "STRING",
- "value": "-"
- },
- {
- "type": "STRING",
- "value": "+"
- }
- ]
- },
- {
- "type": "BLANK"
- }
- ]
- },
- {
- "type": "PATTERN",
- "value": "\\d+"
- }
- ]
+ "type": "PATTERN",
+ "value": "\\d+"
}
]
- },
- {
- "type": "BLANK"
}
]
+ },
+ {
+ "type": "BLANK"
}
]
- },
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
{
"type": "SEQ",
"members": [
{
- "type": "STRING",
- "value": "."
- },
- {
- "type": "PATTERN",
- "value": "\\d+"
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "-"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
},
{
"type": "CHOICE",
"members": [
{
+ "type": "STRING",
+ "value": "0"
+ },
+ {
"type": "SEQ",
"members": [
{
- "type": "CHOICE",
- "members": [
- {
- "type": "STRING",
- "value": "e"
- },
- {
- "type": "STRING",
- "value": "E"
- }
- ]
+ "type": "PATTERN",
+ "value": "[1-9]"
},
{
- "type": "SEQ",
+ "type": "CHOICE",
"members": [
{
- "type": "CHOICE",
- "members": [
- {
- "type": "CHOICE",
- "members": [
- {
- "type": "STRING",
- "value": "-"
- },
- {
- "type": "STRING",
- "value": "+"
- }
- ]
- },
- {
- "type": "BLANK"
- }
- ]
- },
- {
"type": "PATTERN",
"value": "\\d+"
+ },
+ {
+ "type": "BLANK"
}
]
}
]
- },
- {
- "type": "BLANK"
}
]
}
]
},
{
- "type": "SEQ",
+ "type": "CHOICE",
"members": [
{
"type": "SEQ",
@@ -483,58 +421,15 @@
"type": "CHOICE",
"members": [
{
- "type": "CHOICE",
- "members": [
- {
- "type": "STRING",
- "value": "-"
- },
- {
- "type": "STRING",
- "value": "+"
- }
- ]
- },
- {
- "type": "BLANK"
- }
- ]
- },
- {
- "type": "CHOICE",
- "members": [
- {
"type": "STRING",
- "value": "0"
+ "value": "e"
},
{
- "type": "SEQ",
- "members": [
- {
- "type": "PATTERN",
- "value": "[1-9]"
- },
- {
- "type": "CHOICE",
- "members": [
- {
- "type": "PATTERN",
- "value": "\\d+"
- },
- {
- "type": "BLANK"
- }
- ]
- }
- ]
+ "type": "STRING",
+ "value": "E"
}
]
- }
- ]
- },
- {
- "type": "CHOICE",
- "members": [
+ },
{
"type": "SEQ",
"members": [
@@ -543,96 +438,25 @@
"members": [
{
"type": "STRING",
- "value": "e"
+ "value": "-"
},
{
- "type": "STRING",
- "value": "E"
+ "type": "BLANK"
}
]
},
{
- "type": "SEQ",
- "members": [
- {
- "type": "CHOICE",
- "members": [
- {
- "type": "CHOICE",
- "members": [
- {
- "type": "STRING",
- "value": "-"
- },
- {
- "type": "STRING",
- "value": "+"
- }
- ]
- },
- {
- "type": "BLANK"
- }
- ]
- },
- {
- "type": "PATTERN",
- "value": "\\d+"
- }
- ]
+ "type": "PATTERN",
+ "value": "\\d+"
}
]
- },
- {
- "type": "BLANK"
}
]
- }
- ]
- }
- ]
- },
- {
- "type": "SEQ",
- "members": [
- {
- "type": "CHOICE",
- "members": [
- {
- "type": "STRING",
- "value": "0b"
- },
- {
- "type": "STRING",
- "value": "0B"
- }
- ]
- },
- {
- "type": "PATTERN",
- "value": "[0-1]+"
- }
- ]
- },
- {
- "type": "SEQ",
- "members": [
- {
- "type": "CHOICE",
- "members": [
- {
- "type": "STRING",
- "value": "0o"
},
{
- "type": "STRING",
- "value": "0O"
+ "type": "BLANK"
}
]
- },
- {
- "type": "PATTERN",
- "value": "[0-7]+"
}
]
}
diff --git a/src/parser.c b/src/parser.c
index 6c168f8b3..1c036f05a 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -1,4 +1,4 @@
-#include <tree_sitter/parser.h>
+#include "tree_sitter/parser.h"
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
@@ -16,7 +16,7 @@
#define MAX_ALIAS_SEQUENCE_LENGTH 4
#define PRODUCTION_ID_COUNT 2
-enum {
+enum ts_symbol_identifiers {
anon_sym_LBRACE = 1,
anon_sym_COMMA = 2,
anon_sym_RBRACE = 3,
@@ -210,7 +210,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
},
};
-enum {
+enum ts_field_identifiers {
field_key = 1,
field_value = 2,
};
@@ -277,57 +277,49 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
static bool ts_lex(TSLexer *lexer, TSStateId state) {
START_LEXER();
- eof = lexer->eof(lexer);
switch (state) {
case 0:
- if (eof) ADVANCE(25);
- if (lookahead == '"') ADVANCE(32);
- if (lookahead == '+' ||
- lookahead == '-') ADVANCE(6);
- if (lookahead == ',') ADVANCE(27);
- if (lookahead == '.') ADVANCE(21);
+ if (eof) ADVANCE(21);
+ if (lookahead == '"') ADVANCE(28);
+ if (lookahead == ',') ADVANCE(23);
+ if (lookahead == '-') ADVANCE(7);
if (lookahead == '/') ADVANCE(3);
- if (lookahead == '0') ADVANCE(39);
- if (lookahead == ':') ADVANCE(29);
- if (lookahead == '[') ADVANCE(30);
- if (lookahead == '\\') ADVANCE(20);
- if (lookahead == ']') ADVANCE(31);
- if (lookahead == 'f') ADVANCE(7);
- if (lookahead == 'n') ADVANCE(16);
- if (lookahead == 't') ADVANCE(13);
- if (lookahead == '{') ADVANCE(26);
- if (lookahead == '}') ADVANCE(28);
- if (lookahead == '\t' ||
- lookahead == '\n' ||
- lookahead == '\r' ||
- lookahead == ' ') SKIP(24)
- if (('1' <= lookahead && lookahead <= '9')) ADVANCE(41);
+ if (lookahead == '0') ADVANCE(35);
+ if (lookahead == ':') ADVANCE(25);
+ if (lookahead == '[') ADVANCE(26);
+ if (lookahead == '\\') ADVANCE(18);
+ if (lookahead == ']') ADVANCE(27);
+ if (lookahead == 'f') ADVANCE(8);
+ if (lookahead == 'n') ADVANCE(17);
+ if (lookahead == 't') ADVANCE(14);
+ if (lookahead == '{') ADVANCE(22);
+ if (lookahead == '}') ADVANCE(24);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(20)
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(36);
END_STATE();
case 1:
if (lookahead == '\n') SKIP(2)
- if (lookahead == '"') ADVANCE(32);
- if (lookahead == '/') ADVANCE(33);
- if (lookahead == '\\') ADVANCE(20);
- if (lookahead == '\t' ||
- lookahead == '\r' ||
- lookahead == ' ') ADVANCE(36);
- if (lookahead != 0) ADVANCE(37);
+ if (lookahead == '"') ADVANCE(28);
+ if (lookahead == '/') ADVANCE(29);
+ if (lookahead == '\\') ADVANCE(18);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') ADVANCE(32);
+ if (lookahead != 0) ADVANCE(33);
END_STATE();
case 2:
- if (lookahead == '"') ADVANCE(32);
+ if (lookahead == '"') ADVANCE(28);
if (lookahead == '/') ADVANCE(3);
- if (lookahead == '\t' ||
- lookahead == '\n' ||
- lookahead == '\r' ||
+ if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(2)
END_STATE();
case 3:
if (lookahead == '*') ADVANCE(5);
- if (lookahead == '/') ADVANCE(51);
+ if (lookahead == '/') ADVANCE(43);
END_STATE();
case 4:
if (lookahead == '*') ADVANCE(4);
- if (lookahead == '/') ADVANCE(50);
+ if (lookahead == '/') ADVANCE(42);
if (lookahead != 0) ADVANCE(5);
END_STATE();
case 5:
@@ -335,52 +327,44 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
if (lookahead != 0) ADVANCE(5);
END_STATE();
case 6:
- if (lookahead == '0') ADVANCE(40);
- if (('1' <= lookahead && lookahead <= '9')) ADVANCE(41);
+ if (lookahead == '-') ADVANCE(19);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(38);
END_STATE();
case 7:
- if (lookahead == 'a') ADVANCE(10);
+ if (lookahead == '0') ADVANCE(35);
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(36);
END_STATE();
case 8:
- if (lookahead == 'e') ADVANCE(47);
+ if (lookahead == 'a') ADVANCE(11);
END_STATE();
case 9:
- if (lookahead == 'e') ADVANCE(48);
+ if (lookahead == 'e') ADVANCE(39);
END_STATE();
case 10:
- if (lookahead == 'l') ADVANCE(14);
+ if (lookahead == 'e') ADVANCE(40);
END_STATE();
case 11:
- if (lookahead == 'l') ADVANCE(49);
+ if (lookahead == 'l') ADVANCE(15);
END_STATE();
case 12:
- if (lookahead == 'l') ADVANCE(11);
+ if (lookahead == 'l') ADVANCE(41);
END_STATE();
case 13:
- if (lookahead == 'r') ADVANCE(15);
+ if (lookahead == 'l') ADVANCE(12);
END_STATE();
case 14:
- if (lookahead == 's') ADVANCE(9);
+ if (lookahead == 'r') ADVANCE(16);
END_STATE();
case 15:
- if (lookahead == 'u') ADVANCE(8);
+ if (lookahead == 's') ADVANCE(10);
END_STATE();
case 16:
- if (lookahead == 'u') ADVANCE(12);
+ if (lookahead == 'u') ADVANCE(9);
END_STATE();
case 17:
- if (lookahead == '+' ||
- lookahead == '-') ADVANCE(22);
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(45);
+ if (lookahead == 'u') ADVANCE(13);
END_STATE();
case 18:
- if (lookahead == '0' ||
- lookahead == '1') ADVANCE(43);
- END_STATE();
- case 19:
- if (('0' <= lookahead && lookahead <= '7')) ADVANCE(44);
- END_STATE();
- case 20:
if (lookahead == '"' ||
lookahead == '/' ||
lookahead == '\\' ||
@@ -389,179 +373,140 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
lookahead == 'n' ||
lookahead == 'r' ||
lookahead == 't' ||
- lookahead == 'u') ADVANCE(38);
- END_STATE();
- case 21:
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42);
- END_STATE();
- case 22:
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(45);
+ lookahead == 'u') ADVANCE(34);
END_STATE();
- case 23:
- if (('0' <= lookahead && lookahead <= '9') ||
- ('A' <= lookahead && lookahead <= 'F') ||
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(46);
+ case 19:
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(38);
END_STATE();
- case 24:
- if (eof) ADVANCE(25);
- if (lookahead == '"') ADVANCE(32);
- if (lookahead == '+' ||
- lookahead == '-') ADVANCE(6);
- if (lookahead == ',') ADVANCE(27);
- if (lookahead == '.') ADVANCE(21);
+ case 20:
+ if (eof) ADVANCE(21);
+ if (lookahead == '"') ADVANCE(28);
+ if (lookahead == ',') ADVANCE(23);
+ if (lookahead == '-') ADVANCE(7);
if (lookahead == '/') ADVANCE(3);
- if (lookahead == '0') ADVANCE(39);
- if (lookahead == ':') ADVANCE(29);
- if (lookahead == '[') ADVANCE(30);
- if (lookahead == ']') ADVANCE(31);
- if (lookahead == 'f') ADVANCE(7);
- if (lookahead == 'n') ADVANCE(16);
- if (lookahead == 't') ADVANCE(13);
- if (lookahead == '{') ADVANCE(26);
- if (lookahead == '}') ADVANCE(28);
- if (lookahead == '\t' ||
- lookahead == '\n' ||
- lookahead == '\r' ||
- lookahead == ' ') SKIP(24)
- if (('1' <= lookahead && lookahead <= '9')) ADVANCE(41);
+ if (lookahead == '0') ADVANCE(35);
+ if (lookahead == ':') ADVANCE(25);
+ if (lookahead == '[') ADVANCE(26);
+ if (lookahead == ']') ADVANCE(27);
+ if (lookahead == 'f') ADVANCE(8);
+ if (lookahead == 'n') ADVANCE(17);
+ if (lookahead == 't') ADVANCE(14);
+ if (lookahead == '{') ADVANCE(22);
+ if (lookahead == '}') ADVANCE(24);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(20)
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(36);
END_STATE();
- case 25:
+ case 21:
ACCEPT_TOKEN(ts_builtin_sym_end);
END_STATE();
- case 26:
+ case 22:
ACCEPT_TOKEN(anon_sym_LBRACE);
END_STATE();
- case 27:
+ case 23:
ACCEPT_TOKEN(anon_sym_COMMA);
END_STATE();
- case 28:
+ case 24:
ACCEPT_TOKEN(anon_sym_RBRACE);
END_STATE();
- case 29:
+ case 25:
ACCEPT_TOKEN(anon_sym_COLON);
END_STATE();
- case 30:
+ case 26:
ACCEPT_TOKEN(anon_sym_LBRACK);
END_STATE();
- case 31:
+ case 27:
ACCEPT_TOKEN(anon_sym_RBRACK);
END_STATE();
- case 32:
+ case 28:
ACCEPT_TOKEN(anon_sym_DQUOTE);
END_STATE();
- case 33:
+ case 29:
ACCEPT_TOKEN(aux_sym_string_content_token1);
- if (lookahead == '*') ADVANCE(35);
- if (lookahead == '/') ADVANCE(37);
+ if (lookahead == '*') ADVANCE(31);
+ if (lookahead == '/') ADVANCE(33);
if (lookahead != 0 &&
lookahead != '\n' &&
lookahead != '"' &&
- lookahead != '\\') ADVANCE(37);
+ lookahead != '\\') ADVANCE(33);
END_STATE();
- case 34:
+ case 30:
ACCEPT_TOKEN(aux_sym_string_content_token1);
- if (lookahead == '*') ADVANCE(34);
- if (lookahead == '/') ADVANCE(37);
+ if (lookahead == '*') ADVANCE(30);
+ if (lookahead == '/') ADVANCE(33);
if (lookahead != 0 &&
lookahead != '\n' &&
lookahead != '"' &&
- lookahead != '\\') ADVANCE(35);
+ lookahead != '\\') ADVANCE(31);
END_STATE();
- case 35:
+ case 31:
ACCEPT_TOKEN(aux_sym_string_content_token1);
- if (lookahead == '*') ADVANCE(34);
+ if (lookahead == '*') ADVANCE(30);
if (lookahead != 0 &&
lookahead != '\n' &&
lookahead != '"' &&
- lookahead != '\\') ADVANCE(35);
+ lookahead != '\\') ADVANCE(31);
END_STATE();
- case 36:
+ case 32:
ACCEPT_TOKEN(aux_sym_string_content_token1);
- if (lookahead == '/') ADVANCE(33);
+ if (lookahead == '/') ADVANCE(29);
if (lookahead == '\t' ||
- lookahead == '\r' ||
- lookahead == ' ') ADVANCE(36);
+ (11 <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') ADVANCE(32);
if (lookahead != 0 &&
lookahead != '\n' &&
lookahead != '"' &&
- lookahead != '\\') ADVANCE(37);
+ lookahead != '\\') ADVANCE(33);
END_STATE();
- case 37:
+ case 33:
ACCEPT_TOKEN(aux_sym_string_content_token1);
if (lookahead != 0 &&
lookahead != '\n' &&
lookahead != '"' &&
- lookahead != '\\') ADVANCE(37);
+ lookahead != '\\') ADVANCE(33);
END_STATE();
- case 38:
+ case 34:
ACCEPT_TOKEN(sym_escape_sequence);
END_STATE();
- case 39:
- ACCEPT_TOKEN(sym_number);
- if (lookahead == '.') ADVANCE(42);
- if (lookahead == 'B' ||
- lookahead == 'b') ADVANCE(18);
- if (lookahead == 'E' ||
- lookahead == 'e') ADVANCE(17);
- if (lookahead == 'O' ||
- lookahead == 'o') ADVANCE(19);
- if (lookahead == 'X' ||
- lookahead == 'x') ADVANCE(23);
- END_STATE();
- case 40:
+ case 35:
ACCEPT_TOKEN(sym_number);
- if (lookahead == '.') ADVANCE(42);
+ if (lookahead == '.') ADVANCE(37);
if (lookahead == 'E' ||
- lookahead == 'e') ADVANCE(17);
+ lookahead == 'e') ADVANCE(6);
END_STATE();
- case 41:
+ case 36:
ACCEPT_TOKEN(sym_number);
- if (lookahead == '.') ADVANCE(42);
+ if (lookahead == '.') ADVANCE(37);
if (lookahead == 'E' ||
- lookahead == 'e') ADVANCE(17);
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(41);
+ lookahead == 'e') ADVANCE(6);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(36);
END_STATE();
- case 42:
+ case 37:
ACCEPT_TOKEN(sym_number);
if (lookahead == 'E' ||
- lookahead == 'e') ADVANCE(17);
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(42);
- END_STATE();
- case 43:
- ACCEPT_TOKEN(sym_number);
- if (lookahead == '0' ||
- lookahead == '1') ADVANCE(43);
- END_STATE();
- case 44:
- ACCEPT_TOKEN(sym_number);
- if (('0' <= lookahead && lookahead <= '7')) ADVANCE(44);
+ lookahead == 'e') ADVANCE(6);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(37);
END_STATE();
- case 45:
- ACCEPT_TOKEN(sym_number);
- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(45);
- END_STATE();
- case 46:
+ case 38:
ACCEPT_TOKEN(sym_number);
- if (('0' <= lookahead && lookahead <= '9') ||
- ('A' <= lookahead && lookahead <= 'F') ||
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(46);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(38);
END_STATE();
- case 47:
+ case 39:
ACCEPT_TOKEN(sym_true);
END_STATE();
- case 48:
+ case 40:
ACCEPT_TOKEN(sym_false);
END_STATE();
- case 49:
+ case 41:
ACCEPT_TOKEN(sym_null);
END_STATE();
- case 50:
+ case 42:
ACCEPT_TOKEN(sym_comment);
END_STATE();
- case 51:
+ case 43:
ACCEPT_TOKEN(sym_comment);
if (lookahead != 0 &&
- lookahead != '\n') ADVANCE(51);
+ lookahead != '\n') ADVANCE(43);
END_STATE();
default:
return false;
diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h
index 2b14ac104..d21032599 100644
--- a/src/tree_sitter/parser.h
+++ b/src/tree_sitter/parser.h
@@ -13,9 +13,8 @@ extern "C" {
#define ts_builtin_sym_end 0
#define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024
-typedef uint16_t TSStateId;
-
#ifndef TREE_SITTER_API_H_
+typedef uint16_t TSStateId;
typedef uint16_t TSSymbol;
typedef uint16_t TSFieldId;
typedef struct TSLanguage TSLanguage;
@@ -140,7 +139,8 @@ struct TSLanguage {
lexer->advance(lexer, skip); \
start: \
skip = false; \
- lookahead = lexer->lookahead;
+ lookahead = lexer->lookahead; \
+ eof = lexer->eof(lexer);
#define ADVANCE(state_value) \
{ \
@@ -166,7 +166,7 @@ struct TSLanguage {
* Parse Table Macros
*/
-#define SMALL_STATE(id) id - LARGE_STATE_COUNT
+#define SMALL_STATE(id) ((id) - LARGE_STATE_COUNT)
#define STATE(id) id
@@ -176,7 +176,7 @@ struct TSLanguage {
{{ \
.shift = { \
.type = TSParseActionTypeShift, \
- .state = state_value \
+ .state = (state_value) \
} \
}}
@@ -184,7 +184,7 @@ struct TSLanguage {
{{ \
.shift = { \
.type = TSParseActionTypeShift, \
- .state = state_value, \
+ .state = (state_value), \
.repetition = true \
} \
}}