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:
Max Brunsfeld 2014-03-25 08:16:26 -07:00
parent 3f0203d928
commit 2df56f01c8
8 changed files with 1288 additions and 1387 deletions

View file

@ -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+)?") },

View file

@ -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

View file

@ -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);

View file

@ -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);

View file

@ -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);
}

View file

@ -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 {

View file

@ -9,7 +9,6 @@ namespace tree_sitter {
namespace rules {
typedef enum {
SymbolTypeNormal,
SymbolTypeHidden,
SymbolTypeAuxiliary,
SymbolTypeBuiltIn
} SymbolType;