Remove public hidden symbol function
Now, you can't a particular occurrence of a symbol in a grammar. You can only hide a symbol globally (right now, by beginning its name with an underscore).
This commit is contained in:
parent
3f0203d928
commit
2df56f01c8
8 changed files with 1288 additions and 1387 deletions
|
|
@ -17,15 +17,15 @@ namespace tree_sitter {
|
|||
Grammar javascript() {
|
||||
return Grammar({
|
||||
{ "program", repeat(sym("statement")) },
|
||||
{ "terminator", choice({
|
||||
{ "_terminator", choice({
|
||||
str(";"),
|
||||
str("\n") }) },
|
||||
{ "statement", choice({
|
||||
sym("if_statement"),
|
||||
seq({ sym("assignment"), _sym("terminator") }),
|
||||
seq({ sym("expression"), _sym("terminator") }) }) },
|
||||
seq({ sym("assignment"), sym("_terminator") }),
|
||||
seq({ sym("expression"), sym("_terminator") }) }) },
|
||||
{ "if_statement", seq({
|
||||
_sym("IF"),
|
||||
sym("_IF"),
|
||||
str("("),
|
||||
sym("expression"),
|
||||
str(")"),
|
||||
|
|
@ -35,7 +35,7 @@ namespace tree_sitter {
|
|||
repeat(sym("statement")),
|
||||
str("}") }) },
|
||||
{ "assignment", seq({
|
||||
_sym("VAR"),
|
||||
sym("_VAR"),
|
||||
sym("identifier"),
|
||||
str("="),
|
||||
sym("expression") })},
|
||||
|
|
@ -61,8 +61,8 @@ namespace tree_sitter {
|
|||
str("["),
|
||||
comma_sep(err(sym("expression"))),
|
||||
str("]") }) },
|
||||
{ "VAR", str("var") },
|
||||
{ "IF", str("if") },
|
||||
{ "_VAR", str("var") },
|
||||
{ "_IF", str("if") },
|
||||
{ "string", pattern("\"([^\"]|\\\\\")+\"") },
|
||||
{ "identifier", pattern("[\\w_$]+") },
|
||||
{ "number", pattern("\\d+(.\\d+)?") },
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ namespace tree_sitter {
|
|||
return choice({
|
||||
seq({
|
||||
rule,
|
||||
repeat(seq({ _sym("comma"), rule })),
|
||||
repeat(seq({ str(","), rule })),
|
||||
}),
|
||||
blank(),
|
||||
});
|
||||
|
|
@ -25,24 +25,18 @@ namespace tree_sitter {
|
|||
sym("false"),
|
||||
sym("null"), }) },
|
||||
{ "object", seq({
|
||||
_sym("left_brace"),
|
||||
str("{"),
|
||||
comma_sep(err(seq({
|
||||
sym("string"),
|
||||
_sym("colon"),
|
||||
str(":"),
|
||||
sym("value") }))),
|
||||
_sym("right_brace"), }) },
|
||||
str("}"), }) },
|
||||
{ "array", seq({
|
||||
_sym("left_bracket"),
|
||||
str("["),
|
||||
comma_sep(err(sym("value"))),
|
||||
_sym("right_bracket"), }) },
|
||||
str("]"), }) },
|
||||
{ "string", pattern("\"([^\"]|\\\\\")+\"") },
|
||||
{ "number", pattern("\\d+(.\\d+)?") },
|
||||
{ "comma", str(",") },
|
||||
{ "colon", str(":") },
|
||||
{ "left_bracket", str("[") },
|
||||
{ "right_bracket", str("]") },
|
||||
{ "left_brace", str("{") },
|
||||
{ "right_brace", str("}") },
|
||||
{ "null", str("null") },
|
||||
{ "true", str("true") },
|
||||
{ "false", str("false") },
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -11,14 +11,14 @@ enum {
|
|||
ts_sym_string,
|
||||
ts_sym_true,
|
||||
ts_sym_value,
|
||||
ts_sym_colon,
|
||||
ts_sym_comma,
|
||||
ts_sym_left_brace,
|
||||
ts_sym_left_bracket,
|
||||
ts_sym_right_brace,
|
||||
ts_sym_right_bracket,
|
||||
ts_aux_sym_repeat_helper1,
|
||||
ts_aux_sym_repeat_helper2,
|
||||
ts_aux_sym_token1,
|
||||
ts_aux_sym_token2,
|
||||
ts_aux_sym_token3,
|
||||
ts_aux_sym_token4,
|
||||
ts_aux_sym_token5,
|
||||
ts_aux_sym_token6,
|
||||
};
|
||||
|
||||
SYMBOL_NAMES = {
|
||||
|
|
@ -30,14 +30,14 @@ SYMBOL_NAMES = {
|
|||
"string",
|
||||
"true",
|
||||
"value",
|
||||
"colon",
|
||||
"comma",
|
||||
"left_brace",
|
||||
"left_bracket",
|
||||
"right_brace",
|
||||
"right_bracket",
|
||||
"repeat_helper1",
|
||||
"repeat_helper2",
|
||||
"token1",
|
||||
"token2",
|
||||
"token3",
|
||||
"token4",
|
||||
"token5",
|
||||
"token6",
|
||||
};
|
||||
|
||||
LEX_FN() {
|
||||
|
|
@ -52,9 +52,9 @@ LEX_FN() {
|
|||
ADVANCE(3);
|
||||
LEX_ERROR();
|
||||
case 2:
|
||||
ACCEPT_TOKEN(ts_sym_comma);
|
||||
ACCEPT_TOKEN(ts_aux_sym_token3);
|
||||
case 3:
|
||||
ACCEPT_TOKEN(ts_sym_right_brace);
|
||||
ACCEPT_TOKEN(ts_aux_sym_token4);
|
||||
case 4:
|
||||
if (LOOKAHEAD_CHAR() == '}')
|
||||
ADVANCE(3);
|
||||
|
|
@ -66,7 +66,7 @@ LEX_FN() {
|
|||
ADVANCE(6);
|
||||
LEX_ERROR();
|
||||
case 6:
|
||||
ACCEPT_TOKEN(ts_sym_right_bracket);
|
||||
ACCEPT_TOKEN(ts_aux_sym_token6);
|
||||
case 7:
|
||||
if (LOOKAHEAD_CHAR() == ']')
|
||||
ADVANCE(6);
|
||||
|
|
@ -201,7 +201,7 @@ LEX_FN() {
|
|||
ADVANCE(23);
|
||||
ACCEPT_TOKEN(ts_sym_number);
|
||||
case 24:
|
||||
ACCEPT_TOKEN(ts_sym_left_bracket);
|
||||
ACCEPT_TOKEN(ts_aux_sym_token5);
|
||||
case 25:
|
||||
if (LOOKAHEAD_CHAR() == 'a')
|
||||
ADVANCE(26);
|
||||
|
|
@ -249,13 +249,13 @@ LEX_FN() {
|
|||
case 37:
|
||||
ACCEPT_TOKEN(ts_sym_true);
|
||||
case 38:
|
||||
ACCEPT_TOKEN(ts_sym_left_brace);
|
||||
ACCEPT_TOKEN(ts_aux_sym_token1);
|
||||
case 39:
|
||||
if (LOOKAHEAD_CHAR() == ':')
|
||||
ADVANCE(40);
|
||||
LEX_ERROR();
|
||||
case 40:
|
||||
ACCEPT_TOKEN(ts_sym_colon);
|
||||
ACCEPT_TOKEN(ts_aux_sym_token2);
|
||||
case 41:
|
||||
if (LOOKAHEAD_CHAR() == '\"')
|
||||
ADVANCE(9);
|
||||
|
|
@ -284,31 +284,19 @@ LEX_FN() {
|
|||
if (LOOKAHEAD_CHAR() == '\"')
|
||||
ADVANCE(9);
|
||||
LEX_ERROR();
|
||||
case 44:
|
||||
ACCEPT_TOKEN(ts_sym_comma);
|
||||
case 45:
|
||||
ACCEPT_TOKEN(ts_sym_colon);
|
||||
case 46:
|
||||
ACCEPT_TOKEN(ts_sym_left_bracket);
|
||||
case 47:
|
||||
ACCEPT_TOKEN(ts_sym_right_bracket);
|
||||
case 48:
|
||||
ACCEPT_TOKEN(ts_sym_left_brace);
|
||||
case 49:
|
||||
ACCEPT_TOKEN(ts_sym_right_brace);
|
||||
case ts_lex_state_error:
|
||||
if (LOOKAHEAD_CHAR() == '\"')
|
||||
ADVANCE(9);
|
||||
if (LOOKAHEAD_CHAR() == ',')
|
||||
ADVANCE(44);
|
||||
ADVANCE(2);
|
||||
if ('0' <= LOOKAHEAD_CHAR() && LOOKAHEAD_CHAR() <= '9')
|
||||
ADVANCE(19);
|
||||
if (LOOKAHEAD_CHAR() == ':')
|
||||
ADVANCE(45);
|
||||
ADVANCE(40);
|
||||
if (LOOKAHEAD_CHAR() == '[')
|
||||
ADVANCE(46);
|
||||
ADVANCE(24);
|
||||
if (LOOKAHEAD_CHAR() == ']')
|
||||
ADVANCE(47);
|
||||
ADVANCE(6);
|
||||
if (LOOKAHEAD_CHAR() == 'f')
|
||||
ADVANCE(25);
|
||||
if (LOOKAHEAD_CHAR() == 'n')
|
||||
|
|
@ -316,9 +304,9 @@ LEX_FN() {
|
|||
if (LOOKAHEAD_CHAR() == 't')
|
||||
ADVANCE(34);
|
||||
if (LOOKAHEAD_CHAR() == '{')
|
||||
ADVANCE(48);
|
||||
ADVANCE(38);
|
||||
if (LOOKAHEAD_CHAR() == '}')
|
||||
ADVANCE(49);
|
||||
ADVANCE(3);
|
||||
LEX_ERROR();
|
||||
default:
|
||||
LEX_PANIC();
|
||||
|
|
@ -338,8 +326,8 @@ PARSE_TABLE() {
|
|||
SHIFT(ts_sym_string, 1)
|
||||
SHIFT(ts_sym_true, 1)
|
||||
SHIFT(ts_sym_value, 2)
|
||||
SHIFT(ts_sym_left_brace, 3)
|
||||
SHIFT(ts_sym_left_bracket, 55)
|
||||
SHIFT(ts_aux_sym_token1, 3)
|
||||
SHIFT(ts_aux_sym_token5, 55)
|
||||
END_STATE();
|
||||
|
||||
STATE(1);
|
||||
|
|
@ -355,13 +343,13 @@ PARSE_TABLE() {
|
|||
STATE(3);
|
||||
SET_LEX_STATE(41);
|
||||
SHIFT(ts_sym_string, 4)
|
||||
SHIFT(ts_sym_right_brace, 51)
|
||||
SHIFT(ts_aux_sym_token4, 51)
|
||||
SHIFT(ts_builtin_sym_error, 52)
|
||||
END_STATE();
|
||||
|
||||
STATE(4);
|
||||
SET_LEX_STATE(39);
|
||||
SHIFT(ts_sym_colon, 5)
|
||||
SHIFT(ts_aux_sym_token2, 5)
|
||||
END_STATE();
|
||||
|
||||
STATE(5);
|
||||
|
|
@ -374,73 +362,45 @@ PARSE_TABLE() {
|
|||
SHIFT(ts_sym_string, 6)
|
||||
SHIFT(ts_sym_true, 6)
|
||||
SHIFT(ts_sym_value, 7)
|
||||
SHIFT(ts_sym_left_brace, 13)
|
||||
SHIFT(ts_sym_left_bracket, 19)
|
||||
SHIFT(ts_aux_sym_token1, 15)
|
||||
SHIFT(ts_aux_sym_token5, 21)
|
||||
END_STATE();
|
||||
|
||||
STATE(6);
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_sym_comma, ts_sym_value, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_sym_right_brace, ts_sym_value, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_value, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_value, 1, COLLAPSE({0}))
|
||||
END_STATE();
|
||||
|
||||
STATE(7);
|
||||
SET_LEX_STATE(1);
|
||||
SHIFT(ts_sym_comma, 8)
|
||||
REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
SHIFT(ts_aux_sym_repeat_helper1, 49)
|
||||
SHIFT(ts_aux_sym_repeat_helper1, 8)
|
||||
SHIFT(ts_aux_sym_token3, 10)
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
END_STATE();
|
||||
|
||||
STATE(8);
|
||||
SET_LEX_STATE(43);
|
||||
SHIFT(ts_sym_string, 9)
|
||||
SHIFT(ts_builtin_sym_error, 47)
|
||||
SET_LEX_STATE(4);
|
||||
SHIFT(ts_aux_sym_token4, 9)
|
||||
END_STATE();
|
||||
|
||||
STATE(9);
|
||||
SET_LEX_STATE(39);
|
||||
SHIFT(ts_sym_colon, 10)
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(10);
|
||||
SET_LEX_STATE(8);
|
||||
SHIFT(ts_sym_array, 6)
|
||||
SHIFT(ts_sym_false, 6)
|
||||
SHIFT(ts_sym_null, 6)
|
||||
SHIFT(ts_sym_number, 6)
|
||||
SHIFT(ts_sym_object, 6)
|
||||
SHIFT(ts_sym_string, 6)
|
||||
SHIFT(ts_sym_true, 6)
|
||||
SHIFT(ts_sym_value, 11)
|
||||
SHIFT(ts_sym_left_brace, 13)
|
||||
SHIFT(ts_sym_left_bracket, 19)
|
||||
SET_LEX_STATE(43);
|
||||
SHIFT(ts_sym_string, 11)
|
||||
SHIFT(ts_builtin_sym_error, 49)
|
||||
END_STATE();
|
||||
|
||||
STATE(11);
|
||||
SET_LEX_STATE(1);
|
||||
SHIFT(ts_sym_comma, 8)
|
||||
REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
SHIFT(ts_aux_sym_repeat_helper1, 12)
|
||||
SET_LEX_STATE(39);
|
||||
SHIFT(ts_aux_sym_token2, 12)
|
||||
END_STATE();
|
||||
|
||||
STATE(12);
|
||||
SET_LEX_STATE(4);
|
||||
REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 5, COLLAPSE({1, 0, 1, 0, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(13);
|
||||
SET_LEX_STATE(41);
|
||||
SHIFT(ts_sym_string, 14)
|
||||
SHIFT(ts_sym_right_brace, 43)
|
||||
SHIFT(ts_builtin_sym_error, 44)
|
||||
END_STATE();
|
||||
|
||||
STATE(14);
|
||||
SET_LEX_STATE(39);
|
||||
SHIFT(ts_sym_colon, 15)
|
||||
END_STATE();
|
||||
|
||||
STATE(15);
|
||||
SET_LEX_STATE(8);
|
||||
SHIFT(ts_sym_array, 6)
|
||||
SHIFT(ts_sym_false, 6)
|
||||
|
|
@ -449,98 +409,147 @@ PARSE_TABLE() {
|
|||
SHIFT(ts_sym_object, 6)
|
||||
SHIFT(ts_sym_string, 6)
|
||||
SHIFT(ts_sym_true, 6)
|
||||
SHIFT(ts_sym_value, 16)
|
||||
SHIFT(ts_sym_left_brace, 13)
|
||||
SHIFT(ts_sym_left_bracket, 19)
|
||||
SHIFT(ts_sym_value, 13)
|
||||
SHIFT(ts_aux_sym_token1, 15)
|
||||
SHIFT(ts_aux_sym_token5, 21)
|
||||
END_STATE();
|
||||
|
||||
STATE(13);
|
||||
SET_LEX_STATE(1);
|
||||
SHIFT(ts_aux_sym_repeat_helper1, 14)
|
||||
SHIFT(ts_aux_sym_token3, 10)
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
END_STATE();
|
||||
|
||||
STATE(14);
|
||||
SET_LEX_STATE(4);
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 5, COLLAPSE({1, 0, 1, 0, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(15);
|
||||
SET_LEX_STATE(41);
|
||||
SHIFT(ts_sym_string, 16)
|
||||
SHIFT(ts_aux_sym_token4, 45)
|
||||
SHIFT(ts_builtin_sym_error, 46)
|
||||
END_STATE();
|
||||
|
||||
STATE(16);
|
||||
SET_LEX_STATE(1);
|
||||
SHIFT(ts_sym_comma, 8)
|
||||
REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
SHIFT(ts_aux_sym_repeat_helper1, 17)
|
||||
SET_LEX_STATE(39);
|
||||
SHIFT(ts_aux_sym_token2, 17)
|
||||
END_STATE();
|
||||
|
||||
STATE(17);
|
||||
SET_LEX_STATE(4);
|
||||
SHIFT(ts_sym_right_brace, 18)
|
||||
SET_LEX_STATE(8);
|
||||
SHIFT(ts_sym_array, 6)
|
||||
SHIFT(ts_sym_false, 6)
|
||||
SHIFT(ts_sym_null, 6)
|
||||
SHIFT(ts_sym_number, 6)
|
||||
SHIFT(ts_sym_object, 6)
|
||||
SHIFT(ts_sym_string, 6)
|
||||
SHIFT(ts_sym_true, 6)
|
||||
SHIFT(ts_sym_value, 18)
|
||||
SHIFT(ts_aux_sym_token1, 15)
|
||||
SHIFT(ts_aux_sym_token5, 21)
|
||||
END_STATE();
|
||||
|
||||
STATE(18);
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_sym_comma, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}))
|
||||
REDUCE(ts_sym_right_brace, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}))
|
||||
SHIFT(ts_aux_sym_repeat_helper1, 19)
|
||||
SHIFT(ts_aux_sym_token3, 10)
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
END_STATE();
|
||||
|
||||
STATE(19);
|
||||
SET_LEX_STATE(42);
|
||||
SHIFT(ts_sym_array, 20)
|
||||
SHIFT(ts_sym_false, 20)
|
||||
SHIFT(ts_sym_null, 20)
|
||||
SHIFT(ts_sym_number, 20)
|
||||
SHIFT(ts_sym_object, 20)
|
||||
SHIFT(ts_sym_string, 20)
|
||||
SHIFT(ts_sym_true, 20)
|
||||
SHIFT(ts_sym_value, 21)
|
||||
SHIFT(ts_sym_left_brace, 25)
|
||||
SHIFT(ts_sym_left_bracket, 35)
|
||||
SHIFT(ts_sym_right_bracket, 42)
|
||||
SHIFT(ts_builtin_sym_error, 21)
|
||||
SET_LEX_STATE(4);
|
||||
SHIFT(ts_aux_sym_token4, 20)
|
||||
END_STATE();
|
||||
|
||||
STATE(20);
|
||||
SET_LEX_STATE(5);
|
||||
REDUCE(ts_sym_comma, ts_sym_value, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_sym_right_bracket, ts_sym_value, 1, COLLAPSE({0}))
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(21);
|
||||
SET_LEX_STATE(5);
|
||||
SHIFT(ts_sym_comma, 22)
|
||||
REDUCE(ts_sym_right_bracket, ts_aux_sym_repeat_helper2, 0, COLLAPSE({}))
|
||||
SHIFT(ts_aux_sym_repeat_helper2, 40)
|
||||
SET_LEX_STATE(42);
|
||||
SHIFT(ts_sym_array, 22)
|
||||
SHIFT(ts_sym_false, 22)
|
||||
SHIFT(ts_sym_null, 22)
|
||||
SHIFT(ts_sym_number, 22)
|
||||
SHIFT(ts_sym_object, 22)
|
||||
SHIFT(ts_sym_string, 22)
|
||||
SHIFT(ts_sym_true, 22)
|
||||
SHIFT(ts_sym_value, 23)
|
||||
SHIFT(ts_aux_sym_token1, 29)
|
||||
SHIFT(ts_aux_sym_token5, 39)
|
||||
SHIFT(ts_aux_sym_token6, 44)
|
||||
SHIFT(ts_builtin_sym_error, 23)
|
||||
END_STATE();
|
||||
|
||||
STATE(22);
|
||||
SET_LEX_STATE(8);
|
||||
SHIFT(ts_sym_array, 20)
|
||||
SHIFT(ts_sym_false, 20)
|
||||
SHIFT(ts_sym_null, 20)
|
||||
SHIFT(ts_sym_number, 20)
|
||||
SHIFT(ts_sym_object, 20)
|
||||
SHIFT(ts_sym_string, 20)
|
||||
SHIFT(ts_sym_true, 20)
|
||||
SHIFT(ts_sym_value, 23)
|
||||
SHIFT(ts_sym_left_brace, 25)
|
||||
SHIFT(ts_sym_left_bracket, 35)
|
||||
SHIFT(ts_builtin_sym_error, 23)
|
||||
SET_LEX_STATE(5);
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_value, 1, COLLAPSE({0}))
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_value, 1, COLLAPSE({0}))
|
||||
END_STATE();
|
||||
|
||||
STATE(23);
|
||||
SET_LEX_STATE(5);
|
||||
SHIFT(ts_sym_comma, 22)
|
||||
REDUCE(ts_sym_right_bracket, ts_aux_sym_repeat_helper2, 0, COLLAPSE({}))
|
||||
SHIFT(ts_aux_sym_repeat_helper2, 24)
|
||||
SHIFT(ts_aux_sym_token3, 26)
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0, COLLAPSE({}))
|
||||
END_STATE();
|
||||
|
||||
STATE(24);
|
||||
SET_LEX_STATE(7);
|
||||
REDUCE(ts_sym_right_bracket, ts_aux_sym_repeat_helper2, 3, COLLAPSE({1, 0, 1}))
|
||||
SHIFT(ts_aux_sym_token6, 25)
|
||||
END_STATE();
|
||||
|
||||
STATE(25);
|
||||
SET_LEX_STATE(41);
|
||||
SHIFT(ts_sym_string, 26)
|
||||
SHIFT(ts_sym_right_brace, 31)
|
||||
SHIFT(ts_builtin_sym_error, 32)
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(26);
|
||||
SET_LEX_STATE(39);
|
||||
SHIFT(ts_sym_colon, 27)
|
||||
SET_LEX_STATE(8);
|
||||
SHIFT(ts_sym_array, 22)
|
||||
SHIFT(ts_sym_false, 22)
|
||||
SHIFT(ts_sym_null, 22)
|
||||
SHIFT(ts_sym_number, 22)
|
||||
SHIFT(ts_sym_object, 22)
|
||||
SHIFT(ts_sym_string, 22)
|
||||
SHIFT(ts_sym_true, 22)
|
||||
SHIFT(ts_sym_value, 27)
|
||||
SHIFT(ts_aux_sym_token1, 29)
|
||||
SHIFT(ts_aux_sym_token5, 39)
|
||||
SHIFT(ts_builtin_sym_error, 27)
|
||||
END_STATE();
|
||||
|
||||
STATE(27);
|
||||
SET_LEX_STATE(5);
|
||||
SHIFT(ts_aux_sym_repeat_helper2, 28)
|
||||
SHIFT(ts_aux_sym_token3, 26)
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0, COLLAPSE({}))
|
||||
END_STATE();
|
||||
|
||||
STATE(28);
|
||||
SET_LEX_STATE(7);
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 3, COLLAPSE({1, 0, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(29);
|
||||
SET_LEX_STATE(41);
|
||||
SHIFT(ts_sym_string, 30)
|
||||
SHIFT(ts_aux_sym_token4, 35)
|
||||
SHIFT(ts_builtin_sym_error, 36)
|
||||
END_STATE();
|
||||
|
||||
STATE(30);
|
||||
SET_LEX_STATE(39);
|
||||
SHIFT(ts_aux_sym_token2, 31)
|
||||
END_STATE();
|
||||
|
||||
STATE(31);
|
||||
SET_LEX_STATE(8);
|
||||
SHIFT(ts_sym_array, 6)
|
||||
SHIFT(ts_sym_false, 6)
|
||||
|
|
@ -549,154 +558,133 @@ PARSE_TABLE() {
|
|||
SHIFT(ts_sym_object, 6)
|
||||
SHIFT(ts_sym_string, 6)
|
||||
SHIFT(ts_sym_true, 6)
|
||||
SHIFT(ts_sym_value, 28)
|
||||
SHIFT(ts_sym_left_brace, 13)
|
||||
SHIFT(ts_sym_left_bracket, 19)
|
||||
END_STATE();
|
||||
|
||||
STATE(28);
|
||||
SET_LEX_STATE(1);
|
||||
SHIFT(ts_sym_comma, 8)
|
||||
REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
SHIFT(ts_aux_sym_repeat_helper1, 29)
|
||||
END_STATE();
|
||||
|
||||
STATE(29);
|
||||
SET_LEX_STATE(4);
|
||||
SHIFT(ts_sym_right_brace, 30)
|
||||
END_STATE();
|
||||
|
||||
STATE(30);
|
||||
SET_LEX_STATE(5);
|
||||
REDUCE(ts_sym_comma, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}))
|
||||
REDUCE(ts_sym_right_bracket, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(31);
|
||||
SET_LEX_STATE(5);
|
||||
REDUCE(ts_sym_comma, ts_sym_object, 2, COLLAPSE({1, 1}))
|
||||
REDUCE(ts_sym_right_bracket, ts_sym_object, 2, COLLAPSE({1, 1}))
|
||||
SHIFT(ts_sym_value, 32)
|
||||
SHIFT(ts_aux_sym_token1, 15)
|
||||
SHIFT(ts_aux_sym_token5, 21)
|
||||
END_STATE();
|
||||
|
||||
STATE(32);
|
||||
SET_LEX_STATE(1);
|
||||
SHIFT(ts_sym_comma, 8)
|
||||
REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
SHIFT(ts_aux_sym_repeat_helper1, 33)
|
||||
SHIFT(ts_aux_sym_token3, 10)
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
END_STATE();
|
||||
|
||||
STATE(33);
|
||||
SET_LEX_STATE(4);
|
||||
SHIFT(ts_sym_right_brace, 34)
|
||||
SHIFT(ts_aux_sym_token4, 34)
|
||||
END_STATE();
|
||||
|
||||
STATE(34);
|
||||
SET_LEX_STATE(5);
|
||||
REDUCE(ts_sym_comma, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
REDUCE(ts_sym_right_bracket, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}))
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(35);
|
||||
SET_LEX_STATE(42);
|
||||
SHIFT(ts_sym_array, 20)
|
||||
SHIFT(ts_sym_false, 20)
|
||||
SHIFT(ts_sym_null, 20)
|
||||
SHIFT(ts_sym_number, 20)
|
||||
SHIFT(ts_sym_object, 20)
|
||||
SHIFT(ts_sym_string, 20)
|
||||
SHIFT(ts_sym_true, 20)
|
||||
SHIFT(ts_sym_value, 36)
|
||||
SHIFT(ts_sym_left_brace, 25)
|
||||
SHIFT(ts_sym_left_bracket, 35)
|
||||
SHIFT(ts_sym_right_bracket, 39)
|
||||
SHIFT(ts_builtin_sym_error, 36)
|
||||
SET_LEX_STATE(5);
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_object, 2, COLLAPSE({1, 1}))
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_object, 2, COLLAPSE({1, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(36);
|
||||
SET_LEX_STATE(5);
|
||||
SHIFT(ts_sym_comma, 22)
|
||||
REDUCE(ts_sym_right_bracket, ts_aux_sym_repeat_helper2, 0, COLLAPSE({}))
|
||||
SHIFT(ts_aux_sym_repeat_helper2, 37)
|
||||
SET_LEX_STATE(1);
|
||||
SHIFT(ts_aux_sym_repeat_helper1, 37)
|
||||
SHIFT(ts_aux_sym_token3, 10)
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
END_STATE();
|
||||
|
||||
STATE(37);
|
||||
SET_LEX_STATE(7);
|
||||
SHIFT(ts_sym_right_bracket, 38)
|
||||
SET_LEX_STATE(4);
|
||||
SHIFT(ts_aux_sym_token4, 38)
|
||||
END_STATE();
|
||||
|
||||
STATE(38);
|
||||
SET_LEX_STATE(5);
|
||||
REDUCE(ts_sym_comma, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
REDUCE(ts_sym_right_bracket, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(39);
|
||||
SET_LEX_STATE(5);
|
||||
REDUCE(ts_sym_comma, ts_sym_array, 2, COLLAPSE({1, 1}))
|
||||
REDUCE(ts_sym_right_bracket, ts_sym_array, 2, COLLAPSE({1, 1}))
|
||||
SET_LEX_STATE(42);
|
||||
SHIFT(ts_sym_array, 22)
|
||||
SHIFT(ts_sym_false, 22)
|
||||
SHIFT(ts_sym_null, 22)
|
||||
SHIFT(ts_sym_number, 22)
|
||||
SHIFT(ts_sym_object, 22)
|
||||
SHIFT(ts_sym_string, 22)
|
||||
SHIFT(ts_sym_true, 22)
|
||||
SHIFT(ts_sym_value, 40)
|
||||
SHIFT(ts_aux_sym_token1, 29)
|
||||
SHIFT(ts_aux_sym_token5, 39)
|
||||
SHIFT(ts_aux_sym_token6, 43)
|
||||
SHIFT(ts_builtin_sym_error, 40)
|
||||
END_STATE();
|
||||
|
||||
STATE(40);
|
||||
SET_LEX_STATE(7);
|
||||
SHIFT(ts_sym_right_bracket, 41)
|
||||
SET_LEX_STATE(5);
|
||||
SHIFT(ts_aux_sym_repeat_helper2, 41)
|
||||
SHIFT(ts_aux_sym_token3, 26)
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0, COLLAPSE({}))
|
||||
END_STATE();
|
||||
|
||||
STATE(41);
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_sym_comma, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
REDUCE(ts_sym_right_brace, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
SET_LEX_STATE(7);
|
||||
SHIFT(ts_aux_sym_token6, 42)
|
||||
END_STATE();
|
||||
|
||||
STATE(42);
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_sym_comma, ts_sym_array, 2, COLLAPSE({1, 1}))
|
||||
REDUCE(ts_sym_right_brace, ts_sym_array, 2, COLLAPSE({1, 1}))
|
||||
SET_LEX_STATE(5);
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_array, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(43);
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_sym_comma, ts_sym_object, 2, COLLAPSE({1, 1}))
|
||||
REDUCE(ts_sym_right_brace, ts_sym_object, 2, COLLAPSE({1, 1}))
|
||||
SET_LEX_STATE(5);
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_array, 2, COLLAPSE({1, 1}))
|
||||
REDUCE(ts_aux_sym_token6, ts_sym_array, 2, COLLAPSE({1, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(44);
|
||||
SET_LEX_STATE(1);
|
||||
SHIFT(ts_sym_comma, 8)
|
||||
REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
SHIFT(ts_aux_sym_repeat_helper1, 45)
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_array, 2, COLLAPSE({1, 1}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_array, 2, COLLAPSE({1, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(45);
|
||||
SET_LEX_STATE(4);
|
||||
SHIFT(ts_sym_right_brace, 46)
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_object, 2, COLLAPSE({1, 1}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_object, 2, COLLAPSE({1, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(46);
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_sym_comma, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
REDUCE(ts_sym_right_brace, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
SHIFT(ts_aux_sym_repeat_helper1, 47)
|
||||
SHIFT(ts_aux_sym_token3, 10)
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
END_STATE();
|
||||
|
||||
STATE(47);
|
||||
SET_LEX_STATE(1);
|
||||
SHIFT(ts_sym_comma, 8)
|
||||
REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
SHIFT(ts_aux_sym_repeat_helper1, 48)
|
||||
SET_LEX_STATE(4);
|
||||
SHIFT(ts_aux_sym_token4, 48)
|
||||
END_STATE();
|
||||
|
||||
STATE(48);
|
||||
SET_LEX_STATE(4);
|
||||
REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 3, COLLAPSE({1, 0, 1}))
|
||||
SET_LEX_STATE(1);
|
||||
REDUCE(ts_aux_sym_token3, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
REDUCE(ts_aux_sym_token4, ts_sym_object, 4, COLLAPSE({1, 0, 1, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(49);
|
||||
SET_LEX_STATE(4);
|
||||
SHIFT(ts_sym_right_brace, 50)
|
||||
SET_LEX_STATE(1);
|
||||
SHIFT(ts_aux_sym_repeat_helper1, 50)
|
||||
SHIFT(ts_aux_sym_token3, 10)
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
END_STATE();
|
||||
|
||||
STATE(50);
|
||||
SET_LEX_STATE(0);
|
||||
REDUCE(ts_builtin_sym_end, ts_sym_object, 6, COLLAPSE({1, 0, 1, 0, 1, 1}))
|
||||
SET_LEX_STATE(4);
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 3, COLLAPSE({1, 0, 1}))
|
||||
END_STATE();
|
||||
|
||||
STATE(51);
|
||||
|
|
@ -706,14 +694,14 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(52);
|
||||
SET_LEX_STATE(1);
|
||||
SHIFT(ts_sym_comma, 8)
|
||||
REDUCE(ts_sym_right_brace, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
SHIFT(ts_aux_sym_repeat_helper1, 53)
|
||||
SHIFT(ts_aux_sym_token3, 10)
|
||||
REDUCE(ts_aux_sym_token4, ts_aux_sym_repeat_helper1, 0, COLLAPSE({}))
|
||||
END_STATE();
|
||||
|
||||
STATE(53);
|
||||
SET_LEX_STATE(4);
|
||||
SHIFT(ts_sym_right_brace, 54)
|
||||
SHIFT(ts_aux_sym_token4, 54)
|
||||
END_STATE();
|
||||
|
||||
STATE(54);
|
||||
|
|
@ -723,30 +711,30 @@ PARSE_TABLE() {
|
|||
|
||||
STATE(55);
|
||||
SET_LEX_STATE(42);
|
||||
SHIFT(ts_sym_array, 20)
|
||||
SHIFT(ts_sym_false, 20)
|
||||
SHIFT(ts_sym_null, 20)
|
||||
SHIFT(ts_sym_number, 20)
|
||||
SHIFT(ts_sym_object, 20)
|
||||
SHIFT(ts_sym_string, 20)
|
||||
SHIFT(ts_sym_true, 20)
|
||||
SHIFT(ts_sym_array, 22)
|
||||
SHIFT(ts_sym_false, 22)
|
||||
SHIFT(ts_sym_null, 22)
|
||||
SHIFT(ts_sym_number, 22)
|
||||
SHIFT(ts_sym_object, 22)
|
||||
SHIFT(ts_sym_string, 22)
|
||||
SHIFT(ts_sym_true, 22)
|
||||
SHIFT(ts_sym_value, 56)
|
||||
SHIFT(ts_sym_left_brace, 25)
|
||||
SHIFT(ts_sym_left_bracket, 35)
|
||||
SHIFT(ts_sym_right_bracket, 59)
|
||||
SHIFT(ts_aux_sym_token1, 29)
|
||||
SHIFT(ts_aux_sym_token5, 39)
|
||||
SHIFT(ts_aux_sym_token6, 59)
|
||||
SHIFT(ts_builtin_sym_error, 56)
|
||||
END_STATE();
|
||||
|
||||
STATE(56);
|
||||
SET_LEX_STATE(5);
|
||||
SHIFT(ts_sym_comma, 22)
|
||||
REDUCE(ts_sym_right_bracket, ts_aux_sym_repeat_helper2, 0, COLLAPSE({}))
|
||||
SHIFT(ts_aux_sym_repeat_helper2, 57)
|
||||
SHIFT(ts_aux_sym_token3, 26)
|
||||
REDUCE(ts_aux_sym_token6, ts_aux_sym_repeat_helper2, 0, COLLAPSE({}))
|
||||
END_STATE();
|
||||
|
||||
STATE(57);
|
||||
SET_LEX_STATE(7);
|
||||
SHIFT(ts_sym_right_bracket, 58)
|
||||
SHIFT(ts_aux_sym_token6, 58)
|
||||
END_STATE();
|
||||
|
||||
STATE(58);
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ namespace tree_sitter {
|
|||
rule_ptr repeat(const rule_ptr &content);
|
||||
rule_ptr seq(const std::vector<rule_ptr> &rules);
|
||||
rule_ptr sym(const std::string &name);
|
||||
rule_ptr _sym(const std::string &name);
|
||||
rule_ptr pattern(const std::string &value);
|
||||
rule_ptr str(const std::string &value);
|
||||
rule_ptr err(const rule_ptr &rule);
|
||||
|
|
|
|||
|
|
@ -37,10 +37,6 @@ namespace tree_sitter {
|
|||
return make_shared<Symbol>(name);
|
||||
}
|
||||
|
||||
rule_ptr _sym(const string &name) {
|
||||
return make_shared<Symbol>(name, SymbolTypeHidden);
|
||||
}
|
||||
|
||||
rule_ptr pattern(const string &value) {
|
||||
return make_shared<Pattern>(value);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,8 +32,6 @@ namespace tree_sitter {
|
|||
switch (type) {
|
||||
case SymbolTypeNormal:
|
||||
return string("#<sym '") + name + "'>";
|
||||
case SymbolTypeHidden:
|
||||
return string("#<hidden_sym '") + name + "'>";
|
||||
case SymbolTypeAuxiliary:
|
||||
return string("#<aux_sym '") + name + "'>";
|
||||
case SymbolTypeBuiltIn:
|
||||
|
|
@ -56,7 +54,7 @@ namespace tree_sitter {
|
|||
}
|
||||
|
||||
bool Symbol::is_hidden() const {
|
||||
return (type == SymbolTypeHidden || type == SymbolTypeAuxiliary);
|
||||
return (name.front() == '_' || type == SymbolTypeAuxiliary);
|
||||
}
|
||||
|
||||
void Symbol::accept(Visitor *visitor) const {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ namespace tree_sitter {
|
|||
namespace rules {
|
||||
typedef enum {
|
||||
SymbolTypeNormal,
|
||||
SymbolTypeHidden,
|
||||
SymbolTypeAuxiliary,
|
||||
SymbolTypeBuiltIn
|
||||
} SymbolType;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue