diff --git a/grammar.js b/grammar.js index d8ea699..f07c99a 100644 --- a/grammar.js +++ b/grammar.js @@ -2,6 +2,10 @@ function commaSeparated(elem) { return seq(elem, repeat(seq(",", elem)), optional(",")) } +function trailingCommaSeparated(elem) { + return repeat(seq(elem, ",")) +} + module.exports = grammar({ name: "blueprint", @@ -11,11 +15,11 @@ module.exports = grammar({ ], rules: { - // TODO: add the actual grammar rules source_file: ($) => repeat($._definition), _definition: ($) => choice( $.assignment, + $.module, ), comment: (_) => seq("#", /.*/), @@ -28,21 +32,52 @@ module.exports = grammar({ field("right", $._expr), ), + module: ($) => choice( + $._old_module, + $._new_module, + ), + + // This syntax is deprecated, but still accepted + _old_module: ($) => seq( + field("type", $.identifier), + "{", + optional(commaSeparated( + alias(field("property", $._colon_property), $.property) + )), + "}", + ), + + _new_module: ($) => seq( + $.identifier, + "(", + optional(commaSeparated( + alias(field("property", $._equal_property), $.property) + )), + ")", + ), + // }}} // Expressions {{{ _expr: ($) => choice( + // Literals $.identifier, + $.boolean_literal, $.integer_literal, $._string_literal, + // Conditionals + $.select_expression, // Composites $.list_expression, + $.map_expression, ), // The Blueprint scanner makes use of Go's lexer, so copy their rule identifier: (_) => /[_\p{XID_Start}][_\p{XID_Continue}]*/, + boolean_literal: (_) => choice("true", "false"), + integer_literal: (_) => seq(optional("-"), /[0-9]+/), // The Blueprint scanner makes use of Go's lexer, so copy their rule @@ -78,12 +113,94 @@ module.exports = grammar({ ), )), + select_expression: ($) => seq( + "select", + "(", + choice($.select_value, $.soong_config_variable), + ",", + $.select_cases, + ")", + ), + + select_value: ($) => seq( + field("type", alias( + choice("product_variable", "release_variable", "variant"), + $.selection_type, + )), + "(", + field("condition", $._string_literal), + ")", + ), + + soong_config_variable: ($) => seq( + field("type", alias("soong_config_variable", $.selection_type)), + "(", + field( + "condition", + seq( + field("namespace", $._string_literal), + ",", + field("variable", $._string_literal), + ), + ), + ")", + ), + + select_cases: ($) => seq( + "{", + optional(trailingCommaSeparated($.select_case)), + // default *must* be the last one, enforced at parse-time... + optional(seq($.default_case, ",")), + "}", + ), + + select_case: ($) => seq( + field("pattern", $._string_literal), + ":", + field("value", $._case_value) + ), + + default_case: ($) => seq( + field("pattern", "default"), + ":", + field("value", $._case_value), + ), + + _case_value: ($) => choice( + alias("unset", $.unset), + $._expr, + ), + list_expression: ($) => seq( "[", - optional(commaSeparated($._expr)), + optional(commaSeparated(field("element", $._expr))), "]", ), + map_expression: ($) => seq( + "{", + optional(commaSeparated( + alias(field("property", $._colon_property), $.property) + )), + "}", + ), + + // }}} + + // Properties {{{ + + _colon_property: ($) => seq( + field("field", $.identifier), + ":", + field("value", $._expr), + ), + + _equal_property: ($) => seq( + field("field", $.identifier), + "=", + field("value", $._expr), + ), + // }}} } }); diff --git a/src/grammar.json b/src/grammar.json index 1d143a0..e5a5ec7 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -14,6 +14,10 @@ { "type": "SYMBOL", "name": "assignment" + }, + { + "type": "SYMBOL", + "name": "module" } ] }, @@ -68,6 +72,183 @@ } ] }, + "module": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_old_module" + }, + { + "type": "SYMBOL", + "name": "_new_module" + } + ] + }, + "_old_module": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "type", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "FIELD", + "name": "property", + "content": { + "type": "SYMBOL", + "name": "_colon_property" + } + }, + "named": true, + "value": "property" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "ALIAS", + "content": { + "type": "FIELD", + "name": "property", + "content": { + "type": "SYMBOL", + "name": "_colon_property" + } + }, + "named": true, + "value": "property" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "_new_module": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "FIELD", + "name": "property", + "content": { + "type": "SYMBOL", + "name": "_equal_property" + } + }, + "named": true, + "value": "property" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "ALIAS", + "content": { + "type": "FIELD", + "name": "property", + "content": { + "type": "SYMBOL", + "name": "_equal_property" + } + }, + "named": true, + "value": "property" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, "_expr": { "type": "CHOICE", "members": [ @@ -75,6 +256,10 @@ "type": "SYMBOL", "name": "identifier" }, + { + "type": "SYMBOL", + "name": "boolean_literal" + }, { "type": "SYMBOL", "name": "integer_literal" @@ -83,9 +268,17 @@ "type": "SYMBOL", "name": "_string_literal" }, + { + "type": "SYMBOL", + "name": "select_expression" + }, { "type": "SYMBOL", "name": "list_expression" + }, + { + "type": "SYMBOL", + "name": "map_expression" } ] }, @@ -93,6 +286,19 @@ "type": "PATTERN", "value": "[_\\p{XID_Start}][_\\p{XID_Continue}]*" }, + "boolean_literal": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "true" + }, + { + "type": "STRING", + "value": "false" + } + ] + }, "integer_literal": { "type": "SEQ", "members": [ @@ -216,6 +422,272 @@ ] } }, + "select_expression": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "select" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "select_value" + }, + { + "type": "SYMBOL", + "name": "soong_config_variable" + } + ] + }, + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "select_cases" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "select_value": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "type", + "content": { + "type": "ALIAS", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "product_variable" + }, + { + "type": "STRING", + "value": "release_variable" + }, + { + "type": "STRING", + "value": "variant" + } + ] + }, + "named": true, + "value": "selection_type" + } + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "_string_literal" + } + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "soong_config_variable": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "type", + "content": { + "type": "ALIAS", + "content": { + "type": "STRING", + "value": "soong_config_variable" + }, + "named": true, + "value": "selection_type" + } + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "namespace", + "content": { + "type": "SYMBOL", + "name": "_string_literal" + } + }, + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "variable", + "content": { + "type": "SYMBOL", + "name": "_string_literal" + } + } + ] + } + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "select_cases": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "select_case" + }, + { + "type": "STRING", + "value": "," + } + ] + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "default_case" + }, + { + "type": "STRING", + "value": "," + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "select_case": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "pattern", + "content": { + "type": "SYMBOL", + "name": "_string_literal" + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "_case_value" + } + } + ] + }, + "default_case": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "pattern", + "content": { + "type": "STRING", + "value": "default" + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "_case_value" + } + } + ] + }, + "_case_value": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "STRING", + "value": "unset" + }, + "named": true, + "value": "unset" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + }, "list_expression": { "type": "SEQ", "members": [ @@ -230,8 +702,12 @@ "type": "SEQ", "members": [ { - "type": "SYMBOL", - "name": "_expr" + "type": "FIELD", + "name": "element", + "content": { + "type": "SYMBOL", + "name": "_expr" + } }, { "type": "REPEAT", @@ -243,8 +719,12 @@ "value": "," }, { - "type": "SYMBOL", - "name": "_expr" + "type": "FIELD", + "name": "element", + "content": { + "type": "SYMBOL", + "name": "_expr" + } } ] } @@ -273,6 +753,132 @@ "value": "]" } ] + }, + "map_expression": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "FIELD", + "name": "property", + "content": { + "type": "SYMBOL", + "name": "_colon_property" + } + }, + "named": true, + "value": "property" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "ALIAS", + "content": { + "type": "FIELD", + "name": "property", + "content": { + "type": "SYMBOL", + "name": "_colon_property" + } + }, + "named": true, + "value": "property" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "_colon_property": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "field", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "_expr" + } + } + ] + }, + "_equal_property": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "field", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "_expr" + } + } + ] } }, "extras": [ diff --git a/src/node-types.json b/src/node-types.json index 6ce1da6..73e03df 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -31,6 +31,10 @@ "multiple": false, "required": true, "types": [ + { + "type": "boolean_literal", + "named": true + }, { "type": "identifier", "named": true @@ -47,19 +51,90 @@ "type": "list_expression", "named": true }, + { + "type": "map_expression", + "named": true + }, { "type": "raw_string_literal", "named": true + }, + { + "type": "select_expression", + "named": true } ] } } }, + { + "type": "boolean_literal", + "named": true, + "fields": {} + }, { "type": "comment", "named": true, "fields": {} }, + { + "type": "default_case", + "named": true, + "fields": { + "pattern": { + "multiple": false, + "required": true, + "types": [ + { + "type": "default", + "named": false + } + ] + }, + "value": { + "multiple": false, + "required": true, + "types": [ + { + "type": "boolean_literal", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "integer_literal", + "named": true + }, + { + "type": "interpreted_string_literal", + "named": true + }, + { + "type": "list_expression", + "named": true + }, + { + "type": "map_expression", + "named": true + }, + { + "type": "raw_string_literal", + "named": true + }, + { + "type": "select_expression", + "named": true + }, + { + "type": "unset", + "named": true + } + ] + } + } + }, { "type": "integer_literal", "named": true, @@ -83,34 +158,341 @@ { "type": "list_expression", "named": true, + "fields": { + "element": { + "multiple": true, + "required": false, + "types": [ + { + "type": "boolean_literal", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "integer_literal", + "named": true + }, + { + "type": "interpreted_string_literal", + "named": true + }, + { + "type": "list_expression", + "named": true + }, + { + "type": "map_expression", + "named": true + }, + { + "type": "raw_string_literal", + "named": true + }, + { + "type": "select_expression", + "named": true + } + ] + } + } + }, + { + "type": "map_expression", + "named": true, + "fields": { + "property": { + "multiple": true, + "required": false, + "types": [ + { + "type": "property", + "named": true + } + ] + } + } + }, + { + "type": "module", + "named": true, + "fields": { + "property": { + "multiple": true, + "required": false, + "types": [ + { + "type": "property", + "named": true + } + ] + }, + "type": { + "multiple": false, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + }, + { + "type": "property", + "named": true, + "fields": { + "field": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "value": { + "multiple": false, + "required": true, + "types": [ + { + "type": "boolean_literal", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "integer_literal", + "named": true + }, + { + "type": "interpreted_string_literal", + "named": true + }, + { + "type": "list_expression", + "named": true + }, + { + "type": "map_expression", + "named": true + }, + { + "type": "raw_string_literal", + "named": true + }, + { + "type": "select_expression", + "named": true + } + ] + } + } + }, + { + "type": "select_case", + "named": true, + "fields": { + "pattern": { + "multiple": false, + "required": true, + "types": [ + { + "type": "interpreted_string_literal", + "named": true + }, + { + "type": "raw_string_literal", + "named": true + } + ] + }, + "value": { + "multiple": false, + "required": true, + "types": [ + { + "type": "boolean_literal", + "named": true + }, + { + "type": "identifier", + "named": true + }, + { + "type": "integer_literal", + "named": true + }, + { + "type": "interpreted_string_literal", + "named": true + }, + { + "type": "list_expression", + "named": true + }, + { + "type": "map_expression", + "named": true + }, + { + "type": "raw_string_literal", + "named": true + }, + { + "type": "select_expression", + "named": true + }, + { + "type": "unset", + "named": true + } + ] + } + } + }, + { + "type": "select_cases", + "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { - "type": "identifier", + "type": "default_case", "named": true }, { - "type": "integer_literal", - "named": true - }, - { - "type": "interpreted_string_literal", - "named": true - }, - { - "type": "list_expression", - "named": true - }, - { - "type": "raw_string_literal", + "type": "select_case", "named": true } ] } }, + { + "type": "select_expression", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": true, + "types": [ + { + "type": "select_cases", + "named": true + }, + { + "type": "select_value", + "named": true + }, + { + "type": "soong_config_variable", + "named": true + } + ] + } + }, + { + "type": "select_value", + "named": true, + "fields": { + "condition": { + "multiple": false, + "required": true, + "types": [ + { + "type": "interpreted_string_literal", + "named": true + }, + { + "type": "raw_string_literal", + "named": true + } + ] + }, + "type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "selection_type", + "named": true + } + ] + } + } + }, + { + "type": "soong_config_variable", + "named": true, + "fields": { + "condition": { + "multiple": false, + "required": true, + "types": [ + { + "type": ",", + "named": false + } + ] + }, + "namespace": { + "multiple": false, + "required": true, + "types": [ + { + "type": "interpreted_string_literal", + "named": true + }, + { + "type": "raw_string_literal", + "named": true + } + ] + }, + "type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "selection_type", + "named": true + } + ] + }, + "variable": { + "multiple": false, + "required": true, + "types": [ + { + "type": "interpreted_string_literal", + "named": true + }, + { + "type": "raw_string_literal", + "named": true + } + ] + } + } + }, { "type": "source_file", "named": true, @@ -122,6 +504,10 @@ { "type": "assignment", "named": true + }, + { + "type": "module", + "named": true } ] } @@ -134,6 +520,14 @@ "type": "#", "named": false }, + { + "type": "(", + "named": false + }, + { + "type": ")", + "named": false + }, { "type": "+=", "named": false @@ -146,6 +540,10 @@ "type": "-", "named": false }, + { + "type": ":", + "named": false + }, { "type": "=", "named": false @@ -158,10 +556,18 @@ "type": "]", "named": false }, + { + "type": "default", + "named": false + }, { "type": "escape_sequence", "named": true }, + { + "type": "false", + "named": false + }, { "type": "identifier", "named": true @@ -169,5 +575,29 @@ { "type": "raw_string_literal", "named": true + }, + { + "type": "select", + "named": false + }, + { + "type": "selection_type", + "named": true + }, + { + "type": "true", + "named": false + }, + { + "type": "unset", + "named": true + }, + { + "type": "{", + "named": false + }, + { + "type": "}", + "named": false } ] \ No newline at end of file diff --git a/src/parser.c b/src/parser.c index 2b757c6..0341730 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,44 +6,75 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 35 +#define STATE_COUNT 117 #define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 28 +#define SYMBOL_COUNT 59 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 16 +#define TOKEN_COUNT 30 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 3 -#define MAX_ALIAS_SEQUENCE_LENGTH 5 -#define PRODUCTION_ID_COUNT 2 +#define FIELD_COUNT 12 +#define MAX_ALIAS_SEQUENCE_LENGTH 6 +#define PRODUCTION_ID_COUNT 19 enum ts_symbol_identifiers { anon_sym_POUND = 1, aux_sym_comment_token1 = 2, anon_sym_EQ = 3, anon_sym_PLUS_EQ = 4, - sym_identifier = 5, - anon_sym_DASH = 6, - aux_sym_integer_literal_token1 = 7, - sym_raw_string_literal = 8, - anon_sym_DQUOTE = 9, - aux_sym_interpreted_string_literal_token1 = 10, - anon_sym_DQUOTE2 = 11, - sym_escape_sequence = 12, - anon_sym_LBRACK = 13, - anon_sym_COMMA = 14, - anon_sym_RBRACK = 15, - sym_source_file = 16, - sym__definition = 17, - sym_comment = 18, - sym_assignment = 19, - sym__expr = 20, - sym_integer_literal = 21, - sym__string_literal = 22, - sym_interpreted_string_literal = 23, - sym_list_expression = 24, - aux_sym_source_file_repeat1 = 25, - aux_sym_interpreted_string_literal_repeat1 = 26, - aux_sym_list_expression_repeat1 = 27, + anon_sym_LBRACE = 5, + anon_sym_COMMA = 6, + anon_sym_RBRACE = 7, + anon_sym_LPAREN = 8, + anon_sym_RPAREN = 9, + sym_identifier = 10, + anon_sym_true = 11, + anon_sym_false = 12, + anon_sym_DASH = 13, + aux_sym_integer_literal_token1 = 14, + sym_raw_string_literal = 15, + anon_sym_DQUOTE = 16, + aux_sym_interpreted_string_literal_token1 = 17, + anon_sym_DQUOTE2 = 18, + sym_escape_sequence = 19, + anon_sym_select = 20, + anon_sym_product_variable = 21, + anon_sym_release_variable = 22, + anon_sym_variant = 23, + anon_sym_soong_config_variable = 24, + anon_sym_COLON = 25, + anon_sym_default = 26, + anon_sym_unset = 27, + anon_sym_LBRACK = 28, + anon_sym_RBRACK = 29, + sym_source_file = 30, + sym__definition = 31, + sym_comment = 32, + sym_assignment = 33, + sym_module = 34, + sym__old_module = 35, + sym__new_module = 36, + sym__expr = 37, + sym_boolean_literal = 38, + sym_integer_literal = 39, + sym__string_literal = 40, + sym_interpreted_string_literal = 41, + sym_select_expression = 42, + sym_select_value = 43, + sym_soong_config_variable = 44, + sym_select_cases = 45, + sym_select_case = 46, + sym_default_case = 47, + sym__case_value = 48, + sym_list_expression = 49, + sym_map_expression = 50, + sym__colon_property = 51, + sym__equal_property = 52, + aux_sym_source_file_repeat1 = 53, + aux_sym__old_module_repeat1 = 54, + aux_sym__new_module_repeat1 = 55, + aux_sym_interpreted_string_literal_repeat1 = 56, + aux_sym_select_cases_repeat1 = 57, + aux_sym_list_expression_repeat1 = 58, }; static const char * const ts_symbol_names[] = { @@ -52,7 +83,14 @@ static const char * const ts_symbol_names[] = { [aux_sym_comment_token1] = "comment_token1", [anon_sym_EQ] = "=", [anon_sym_PLUS_EQ] = "+=", + [anon_sym_LBRACE] = "{", + [anon_sym_COMMA] = ",", + [anon_sym_RBRACE] = "}", + [anon_sym_LPAREN] = "(", + [anon_sym_RPAREN] = ")", [sym_identifier] = "identifier", + [anon_sym_true] = "true", + [anon_sym_false] = "false", [anon_sym_DASH] = "-", [aux_sym_integer_literal_token1] = "integer_literal_token1", [sym_raw_string_literal] = "raw_string_literal", @@ -60,20 +98,44 @@ static const char * const ts_symbol_names[] = { [aux_sym_interpreted_string_literal_token1] = "interpreted_string_literal_token1", [anon_sym_DQUOTE2] = "\"", [sym_escape_sequence] = "escape_sequence", + [anon_sym_select] = "select", + [anon_sym_product_variable] = "selection_type", + [anon_sym_release_variable] = "selection_type", + [anon_sym_variant] = "selection_type", + [anon_sym_soong_config_variable] = "selection_type", + [anon_sym_COLON] = ":", + [anon_sym_default] = "default", + [anon_sym_unset] = "unset", [anon_sym_LBRACK] = "[", - [anon_sym_COMMA] = ",", [anon_sym_RBRACK] = "]", [sym_source_file] = "source_file", [sym__definition] = "_definition", [sym_comment] = "comment", [sym_assignment] = "assignment", + [sym_module] = "module", + [sym__old_module] = "_old_module", + [sym__new_module] = "_new_module", [sym__expr] = "_expr", + [sym_boolean_literal] = "boolean_literal", [sym_integer_literal] = "integer_literal", [sym__string_literal] = "_string_literal", [sym_interpreted_string_literal] = "interpreted_string_literal", + [sym_select_expression] = "select_expression", + [sym_select_value] = "select_value", + [sym_soong_config_variable] = "soong_config_variable", + [sym_select_cases] = "select_cases", + [sym_select_case] = "select_case", + [sym_default_case] = "default_case", + [sym__case_value] = "_case_value", [sym_list_expression] = "list_expression", + [sym_map_expression] = "map_expression", + [sym__colon_property] = "property", + [sym__equal_property] = "property", [aux_sym_source_file_repeat1] = "source_file_repeat1", + [aux_sym__old_module_repeat1] = "_old_module_repeat1", + [aux_sym__new_module_repeat1] = "_new_module_repeat1", [aux_sym_interpreted_string_literal_repeat1] = "interpreted_string_literal_repeat1", + [aux_sym_select_cases_repeat1] = "select_cases_repeat1", [aux_sym_list_expression_repeat1] = "list_expression_repeat1", }; @@ -83,7 +145,14 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym_comment_token1] = aux_sym_comment_token1, [anon_sym_EQ] = anon_sym_EQ, [anon_sym_PLUS_EQ] = anon_sym_PLUS_EQ, + [anon_sym_LBRACE] = anon_sym_LBRACE, + [anon_sym_COMMA] = anon_sym_COMMA, + [anon_sym_RBRACE] = anon_sym_RBRACE, + [anon_sym_LPAREN] = anon_sym_LPAREN, + [anon_sym_RPAREN] = anon_sym_RPAREN, [sym_identifier] = sym_identifier, + [anon_sym_true] = anon_sym_true, + [anon_sym_false] = anon_sym_false, [anon_sym_DASH] = anon_sym_DASH, [aux_sym_integer_literal_token1] = aux_sym_integer_literal_token1, [sym_raw_string_literal] = sym_raw_string_literal, @@ -91,20 +160,44 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym_interpreted_string_literal_token1] = aux_sym_interpreted_string_literal_token1, [anon_sym_DQUOTE2] = anon_sym_DQUOTE, [sym_escape_sequence] = sym_escape_sequence, + [anon_sym_select] = anon_sym_select, + [anon_sym_product_variable] = anon_sym_product_variable, + [anon_sym_release_variable] = anon_sym_product_variable, + [anon_sym_variant] = anon_sym_product_variable, + [anon_sym_soong_config_variable] = anon_sym_product_variable, + [anon_sym_COLON] = anon_sym_COLON, + [anon_sym_default] = anon_sym_default, + [anon_sym_unset] = anon_sym_unset, [anon_sym_LBRACK] = anon_sym_LBRACK, - [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_RBRACK] = anon_sym_RBRACK, [sym_source_file] = sym_source_file, [sym__definition] = sym__definition, [sym_comment] = sym_comment, [sym_assignment] = sym_assignment, + [sym_module] = sym_module, + [sym__old_module] = sym__old_module, + [sym__new_module] = sym__new_module, [sym__expr] = sym__expr, + [sym_boolean_literal] = sym_boolean_literal, [sym_integer_literal] = sym_integer_literal, [sym__string_literal] = sym__string_literal, [sym_interpreted_string_literal] = sym_interpreted_string_literal, + [sym_select_expression] = sym_select_expression, + [sym_select_value] = sym_select_value, + [sym_soong_config_variable] = sym_soong_config_variable, + [sym_select_cases] = sym_select_cases, + [sym_select_case] = sym_select_case, + [sym_default_case] = sym_default_case, + [sym__case_value] = sym__case_value, [sym_list_expression] = sym_list_expression, + [sym_map_expression] = sym_map_expression, + [sym__colon_property] = sym__colon_property, + [sym__equal_property] = sym__colon_property, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, + [aux_sym__old_module_repeat1] = aux_sym__old_module_repeat1, + [aux_sym__new_module_repeat1] = aux_sym__new_module_repeat1, [aux_sym_interpreted_string_literal_repeat1] = aux_sym_interpreted_string_literal_repeat1, + [aux_sym_select_cases_repeat1] = aux_sym_select_cases_repeat1, [aux_sym_list_expression_repeat1] = aux_sym_list_expression_repeat1, }; @@ -129,10 +222,38 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_LBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_COMMA] = { + .visible = true, + .named = false, + }, + [anon_sym_RBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_LPAREN] = { + .visible = true, + .named = false, + }, + [anon_sym_RPAREN] = { + .visible = true, + .named = false, + }, [sym_identifier] = { .visible = true, .named = true, }, + [anon_sym_true] = { + .visible = true, + .named = false, + }, + [anon_sym_false] = { + .visible = true, + .named = false, + }, [anon_sym_DASH] = { .visible = true, .named = false, @@ -161,11 +282,39 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [anon_sym_LBRACK] = { + [anon_sym_select] = { .visible = true, .named = false, }, - [anon_sym_COMMA] = { + [anon_sym_product_variable] = { + .visible = true, + .named = true, + }, + [anon_sym_release_variable] = { + .visible = true, + .named = true, + }, + [anon_sym_variant] = { + .visible = true, + .named = true, + }, + [anon_sym_soong_config_variable] = { + .visible = true, + .named = true, + }, + [anon_sym_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_default] = { + .visible = true, + .named = false, + }, + [anon_sym_unset] = { + .visible = true, + .named = true, + }, + [anon_sym_LBRACK] = { .visible = true, .named = false, }, @@ -189,10 +338,26 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_module] = { + .visible = true, + .named = true, + }, + [sym__old_module] = { + .visible = false, + .named = true, + }, + [sym__new_module] = { + .visible = false, + .named = true, + }, [sym__expr] = { .visible = false, .named = true, }, + [sym_boolean_literal] = { + .visible = true, + .named = true, + }, [sym_integer_literal] = { .visible = true, .named = true, @@ -205,18 +370,70 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_select_expression] = { + .visible = true, + .named = true, + }, + [sym_select_value] = { + .visible = true, + .named = true, + }, + [sym_soong_config_variable] = { + .visible = true, + .named = true, + }, + [sym_select_cases] = { + .visible = true, + .named = true, + }, + [sym_select_case] = { + .visible = true, + .named = true, + }, + [sym_default_case] = { + .visible = true, + .named = true, + }, + [sym__case_value] = { + .visible = false, + .named = true, + }, [sym_list_expression] = { .visible = true, .named = true, }, + [sym_map_expression] = { + .visible = true, + .named = true, + }, + [sym__colon_property] = { + .visible = true, + .named = true, + }, + [sym__equal_property] = { + .visible = true, + .named = true, + }, [aux_sym_source_file_repeat1] = { .visible = false, .named = false, }, + [aux_sym__old_module_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym__new_module_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_interpreted_string_literal_repeat1] = { .visible = false, .named = false, }, + [aux_sym_select_cases_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_list_expression_repeat1] = { .visible = false, .named = false, @@ -224,27 +441,123 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { }; enum ts_field_identifiers { - field_left = 1, - field_operator = 2, - field_right = 3, + field_condition = 1, + field_element = 2, + field_field = 3, + field_left = 4, + field_namespace = 5, + field_operator = 6, + field_pattern = 7, + field_property = 8, + field_right = 9, + field_type = 10, + field_value = 11, + field_variable = 12, }; static const char * const ts_field_names[] = { [0] = NULL, + [field_condition] = "condition", + [field_element] = "element", + [field_field] = "field", [field_left] = "left", + [field_namespace] = "namespace", [field_operator] = "operator", + [field_pattern] = "pattern", + [field_property] = "property", [field_right] = "right", + [field_type] = "type", + [field_value] = "value", + [field_variable] = "variable", }; static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { - [1] = {.index = 0, .length = 3}, + [1] = {.index = 0, .length = 2}, + [2] = {.index = 2, .length = 1}, + [3] = {.index = 3, .length = 3}, + [4] = {.index = 6, .length = 1}, + [5] = {.index = 7, .length = 4}, + [6] = {.index = 11, .length = 3}, + [7] = {.index = 14, .length = 3}, + [8] = {.index = 17, .length = 1}, + [9] = {.index = 18, .length = 2}, + [10] = {.index = 20, .length = 5}, + [11] = {.index = 25, .length = 2}, + [12] = {.index = 27, .length = 4}, + [13] = {.index = 31, .length = 4}, + [14] = {.index = 35, .length = 2}, + [15] = {.index = 37, .length = 2}, + [16] = {.index = 39, .length = 2}, + [17] = {.index = 41, .length = 4}, + [18] = {.index = 45, .length = 2}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = + {field_property, 0, .inherited = true}, + {field_type, 0, .inherited = true}, + [2] = + {field_property, 0, .inherited = true}, + [3] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, + [6] = + {field_type, 0}, + [7] = + {field_field, 2, .inherited = true}, + {field_property, 2}, + {field_type, 0}, + {field_value, 2, .inherited = true}, + [11] = + {field_field, 2, .inherited = true}, + {field_property, 2}, + {field_value, 2, .inherited = true}, + [14] = + {field_field, 1, .inherited = true}, + {field_property, 1}, + {field_value, 1, .inherited = true}, + [17] = + {field_element, 1}, + [18] = + {field_field, 0}, + {field_value, 2}, + [20] = + {field_field, 2, .inherited = true}, + {field_property, 2}, + {field_property, 3, .inherited = true}, + {field_type, 0}, + {field_value, 2, .inherited = true}, + [25] = + {field_property, 0, .inherited = true}, + {field_property, 1, .inherited = true}, + [27] = + {field_field, 2, .inherited = true}, + {field_property, 2}, + {field_property, 3, .inherited = true}, + {field_value, 2, .inherited = true}, + [31] = + {field_field, 1, .inherited = true}, + {field_property, 1}, + {field_property, 2, .inherited = true}, + {field_value, 1, .inherited = true}, + [35] = + {field_element, 1}, + {field_element, 2, .inherited = true}, + [37] = + {field_element, 0, .inherited = true}, + {field_element, 1, .inherited = true}, + [39] = + {field_condition, 2}, + {field_type, 0}, + [41] = + {field_condition, 3}, + {field_namespace, 2}, + {field_type, 0}, + {field_variable, 4}, + [45] = + {field_pattern, 0}, + {field_value, 2}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { @@ -291,6 +604,88 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [32] = 32, [33] = 33, [34] = 34, + [35] = 35, + [36] = 36, + [37] = 37, + [38] = 38, + [39] = 39, + [40] = 40, + [41] = 41, + [42] = 42, + [43] = 43, + [44] = 44, + [45] = 45, + [46] = 46, + [47] = 47, + [48] = 48, + [49] = 49, + [50] = 50, + [51] = 51, + [52] = 52, + [53] = 53, + [54] = 54, + [55] = 55, + [56] = 56, + [57] = 57, + [58] = 58, + [59] = 59, + [60] = 60, + [61] = 61, + [62] = 62, + [63] = 63, + [64] = 64, + [65] = 65, + [66] = 66, + [67] = 67, + [68] = 68, + [69] = 69, + [70] = 70, + [71] = 71, + [72] = 72, + [73] = 73, + [74] = 74, + [75] = 75, + [76] = 76, + [77] = 77, + [78] = 78, + [79] = 79, + [80] = 80, + [81] = 81, + [82] = 82, + [83] = 83, + [84] = 84, + [85] = 85, + [86] = 86, + [87] = 87, + [88] = 88, + [89] = 89, + [90] = 90, + [91] = 91, + [92] = 92, + [93] = 93, + [94] = 94, + [95] = 95, + [96] = 96, + [97] = 97, + [98] = 98, + [99] = 99, + [100] = 100, + [101] = 101, + [102] = 102, + [103] = 103, + [104] = 104, + [105] = 105, + [106] = 106, + [107] = 107, + [108] = 108, + [109] = 109, + [110] = 110, + [111] = 111, + [112] = 112, + [113] = 113, + [114] = 114, + [115] = 115, + [116] = 116, }; static inline bool sym_identifier_character_set_1(int32_t c) { @@ -1096,6 +1491,2040 @@ static inline bool sym_identifier_character_set_1(int32_t c) { } static inline bool sym_identifier_character_set_2(int32_t c) { + return (c < 43642 + ? (c < 3784 + ? (c < 2759 + ? (c < 2048 + ? (c < 1155 + ? (c < 736 + ? (c < 183 + ? (c < 'a' + ? (c < 'A' + ? (c >= '0' && c <= '9') + : c <= 'Z') + : (c <= 'z' || (c < 181 + ? c == 170 + : c <= 181))) + : (c <= 183 || (c < 216 + ? (c < 192 + ? c == 186 + : c <= 214) + : (c <= 246 || (c < 710 + ? (c >= 248 && c <= 705) + : c <= 721))))) + : (c <= 740 || (c < 895 + ? (c < 768 + ? (c < 750 + ? c == 748 + : c <= 750) + : (c <= 884 || (c < 891 + ? (c >= 886 && c <= 887) + : c <= 893))) + : (c <= 895 || (c < 910 + ? (c < 908 + ? (c >= 902 && c <= 906) + : c <= 908) + : (c <= 929 || (c < 1015 + ? (c >= 931 && c <= 1013) + : c <= 1153))))))) + : (c <= 1159 || (c < 1552 + ? (c < 1471 + ? (c < 1369 + ? (c < 1329 + ? (c >= 1162 && c <= 1327) + : c <= 1366) + : (c <= 1369 || (c < 1425 + ? (c >= 1376 && c <= 1416) + : c <= 1469))) + : (c <= 1471 || (c < 1479 + ? (c < 1476 + ? (c >= 1473 && c <= 1474) + : c <= 1477) + : (c <= 1479 || (c < 1519 + ? (c >= 1488 && c <= 1514) + : c <= 1522))))) + : (c <= 1562 || (c < 1791 + ? (c < 1749 + ? (c < 1646 + ? (c >= 1568 && c <= 1641) + : c <= 1747) + : (c <= 1756 || (c < 1770 + ? (c >= 1759 && c <= 1768) + : c <= 1788))) + : (c <= 1791 || (c < 1984 + ? (c < 1869 + ? (c >= 1808 && c <= 1866) + : c <= 1969) + : (c <= 2037 || (c < 2045 + ? c == 2042 + : c <= 2045))))))))) + : (c <= 2093 || (c < 2561 + ? (c < 2474 + ? (c < 2275 + ? (c < 2160 + ? (c < 2144 + ? (c >= 2112 && c <= 2139) + : c <= 2154) + : (c <= 2183 || (c < 2200 + ? (c >= 2185 && c <= 2190) + : c <= 2273))) + : (c <= 2403 || (c < 2437 + ? (c < 2417 + ? (c >= 2406 && c <= 2415) + : c <= 2435) + : (c <= 2444 || (c < 2451 + ? (c >= 2447 && c <= 2448) + : c <= 2472))))) + : (c <= 2480 || (c < 2519 + ? (c < 2492 + ? (c < 2486 + ? c == 2482 + : c <= 2489) + : (c <= 2500 || (c < 2507 + ? (c >= 2503 && c <= 2504) + : c <= 2510))) + : (c <= 2519 || (c < 2534 + ? (c < 2527 + ? (c >= 2524 && c <= 2525) + : c <= 2531) + : (c <= 2545 || (c < 2558 + ? c == 2556 + : c <= 2558))))))) + : (c <= 2563 || (c < 2641 + ? (c < 2613 + ? (c < 2579 + ? (c < 2575 + ? (c >= 2565 && c <= 2570) + : c <= 2576) + : (c <= 2600 || (c < 2610 + ? (c >= 2602 && c <= 2608) + : c <= 2611))) + : (c <= 2614 || (c < 2622 + ? (c < 2620 + ? (c >= 2616 && c <= 2617) + : c <= 2620) + : (c <= 2626 || (c < 2635 + ? (c >= 2631 && c <= 2632) + : c <= 2637))))) + : (c <= 2641 || (c < 2703 + ? (c < 2662 + ? (c < 2654 + ? (c >= 2649 && c <= 2652) + : c <= 2654) + : (c <= 2677 || (c < 2693 + ? (c >= 2689 && c <= 2691) + : c <= 2701))) + : (c <= 2705 || (c < 2738 + ? (c < 2730 + ? (c >= 2707 && c <= 2728) + : c <= 2736) + : (c <= 2739 || (c < 2748 + ? (c >= 2741 && c <= 2745) + : c <= 2757))))))))))) + : (c <= 2761 || (c < 3174 + ? (c < 2962 + ? (c < 2869 + ? (c < 2817 + ? (c < 2784 + ? (c < 2768 + ? (c >= 2763 && c <= 2765) + : c <= 2768) + : (c <= 2787 || (c < 2809 + ? (c >= 2790 && c <= 2799) + : c <= 2815))) + : (c <= 2819 || (c < 2835 + ? (c < 2831 + ? (c >= 2821 && c <= 2828) + : c <= 2832) + : (c <= 2856 || (c < 2866 + ? (c >= 2858 && c <= 2864) + : c <= 2867))))) + : (c <= 2873 || (c < 2911 + ? (c < 2891 + ? (c < 2887 + ? (c >= 2876 && c <= 2884) + : c <= 2888) + : (c <= 2893 || (c < 2908 + ? (c >= 2901 && c <= 2903) + : c <= 2909))) + : (c <= 2915 || (c < 2946 + ? (c < 2929 + ? (c >= 2918 && c <= 2927) + : c <= 2929) + : (c <= 2947 || (c < 2958 + ? (c >= 2949 && c <= 2954) + : c <= 2960))))))) + : (c <= 2965 || (c < 3046 + ? (c < 2990 + ? (c < 2974 + ? (c < 2972 + ? (c >= 2969 && c <= 2970) + : c <= 2972) + : (c <= 2975 || (c < 2984 + ? (c >= 2979 && c <= 2980) + : c <= 2986))) + : (c <= 3001 || (c < 3018 + ? (c < 3014 + ? (c >= 3006 && c <= 3010) + : c <= 3016) + : (c <= 3021 || (c < 3031 + ? c == 3024 + : c <= 3031))))) + : (c <= 3055 || (c < 3142 + ? (c < 3090 + ? (c < 3086 + ? (c >= 3072 && c <= 3084) + : c <= 3088) + : (c <= 3112 || (c < 3132 + ? (c >= 3114 && c <= 3129) + : c <= 3140))) + : (c <= 3144 || (c < 3160 + ? (c < 3157 + ? (c >= 3146 && c <= 3149) + : c <= 3158) + : (c <= 3162 || (c < 3168 + ? c == 3165 + : c <= 3171))))))))) + : (c <= 3183 || (c < 3457 + ? (c < 3296 + ? (c < 3253 + ? (c < 3214 + ? (c < 3205 + ? (c >= 3200 && c <= 3203) + : c <= 3212) + : (c <= 3216 || (c < 3242 + ? (c >= 3218 && c <= 3240) + : c <= 3251))) + : (c <= 3257 || (c < 3274 + ? (c < 3270 + ? (c >= 3260 && c <= 3268) + : c <= 3272) + : (c <= 3277 || (c < 3293 + ? (c >= 3285 && c <= 3286) + : c <= 3294))))) + : (c <= 3299 || (c < 3398 + ? (c < 3328 + ? (c < 3313 + ? (c >= 3302 && c <= 3311) + : c <= 3314) + : (c <= 3340 || (c < 3346 + ? (c >= 3342 && c <= 3344) + : c <= 3396))) + : (c <= 3400 || (c < 3423 + ? (c < 3412 + ? (c >= 3402 && c <= 3406) + : c <= 3415) + : (c <= 3427 || (c < 3450 + ? (c >= 3430 && c <= 3439) + : c <= 3455))))))) + : (c <= 3459 || (c < 3585 + ? (c < 3530 + ? (c < 3507 + ? (c < 3482 + ? (c >= 3461 && c <= 3478) + : c <= 3505) + : (c <= 3515 || (c < 3520 + ? c == 3517 + : c <= 3526))) + : (c <= 3530 || (c < 3544 + ? (c < 3542 + ? (c >= 3535 && c <= 3540) + : c <= 3542) + : (c <= 3551 || (c < 3570 + ? (c >= 3558 && c <= 3567) + : c <= 3571))))) + : (c <= 3642 || (c < 3724 + ? (c < 3713 + ? (c < 3664 + ? (c >= 3648 && c <= 3662) + : c <= 3673) + : (c <= 3714 || (c < 3718 + ? c == 3716 + : c <= 3722))) + : (c <= 3747 || (c < 3776 + ? (c < 3751 + ? c == 3749 + : c <= 3773) + : (c <= 3780 || c == 3782)))))))))))) + : (c <= 3789 || (c < 8027 + ? (c < 5919 + ? (c < 4696 + ? (c < 3974 + ? (c < 3893 + ? (c < 3840 + ? (c < 3804 + ? (c >= 3792 && c <= 3801) + : c <= 3807) + : (c <= 3840 || (c < 3872 + ? (c >= 3864 && c <= 3865) + : c <= 3881))) + : (c <= 3893 || (c < 3902 + ? (c < 3897 + ? c == 3895 + : c <= 3897) + : (c <= 3911 || (c < 3953 + ? (c >= 3913 && c <= 3948) + : c <= 3972))))) + : (c <= 3991 || (c < 4295 + ? (c < 4096 + ? (c < 4038 + ? (c >= 3993 && c <= 4028) + : c <= 4038) + : (c <= 4169 || (c < 4256 + ? (c >= 4176 && c <= 4253) + : c <= 4293))) + : (c <= 4295 || (c < 4348 + ? (c < 4304 + ? c == 4301 + : c <= 4346) + : (c <= 4680 || (c < 4688 + ? (c >= 4682 && c <= 4685) + : c <= 4694))))))) + : (c <= 4696 || (c < 4888 + ? (c < 4792 + ? (c < 4746 + ? (c < 4704 + ? (c >= 4698 && c <= 4701) + : c <= 4744) + : (c <= 4749 || (c < 4786 + ? (c >= 4752 && c <= 4784) + : c <= 4789))) + : (c <= 4798 || (c < 4808 + ? (c < 4802 + ? c == 4800 + : c <= 4805) + : (c <= 4822 || (c < 4882 + ? (c >= 4824 && c <= 4880) + : c <= 4885))))) + : (c <= 4954 || (c < 5121 + ? (c < 4992 + ? (c < 4969 + ? (c >= 4957 && c <= 4959) + : c <= 4977) + : (c <= 5007 || (c < 5112 + ? (c >= 5024 && c <= 5109) + : c <= 5117))) + : (c <= 5740 || (c < 5792 + ? (c < 5761 + ? (c >= 5743 && c <= 5759) + : c <= 5786) + : (c <= 5866 || (c < 5888 + ? (c >= 5870 && c <= 5880) + : c <= 5909))))))))) + : (c <= 5940 || (c < 6752 + ? (c < 6272 + ? (c < 6103 + ? (c < 5998 + ? (c < 5984 + ? (c >= 5952 && c <= 5971) + : c <= 5996) + : (c <= 6000 || (c < 6016 + ? (c >= 6002 && c <= 6003) + : c <= 6099))) + : (c <= 6103 || (c < 6155 + ? (c < 6112 + ? (c >= 6108 && c <= 6109) + : c <= 6121) + : (c <= 6157 || (c < 6176 + ? (c >= 6159 && c <= 6169) + : c <= 6264))))) + : (c <= 6314 || (c < 6512 + ? (c < 6432 + ? (c < 6400 + ? (c >= 6320 && c <= 6389) + : c <= 6430) + : (c <= 6443 || (c < 6470 + ? (c >= 6448 && c <= 6459) + : c <= 6509))) + : (c <= 6516 || (c < 6608 + ? (c < 6576 + ? (c >= 6528 && c <= 6571) + : c <= 6601) + : (c <= 6618 || (c < 6688 + ? (c >= 6656 && c <= 6683) + : c <= 6750))))))) + : (c <= 6780 || (c < 7245 + ? (c < 6912 + ? (c < 6823 + ? (c < 6800 + ? (c >= 6783 && c <= 6793) + : c <= 6809) + : (c <= 6823 || (c < 6847 + ? (c >= 6832 && c <= 6845) + : c <= 6862))) + : (c <= 6988 || (c < 7040 + ? (c < 7019 + ? (c >= 6992 && c <= 7001) + : c <= 7027) + : (c <= 7155 || (c < 7232 + ? (c >= 7168 && c <= 7223) + : c <= 7241))))) + : (c <= 7293 || (c < 7424 + ? (c < 7357 + ? (c < 7312 + ? (c >= 7296 && c <= 7304) + : c <= 7354) + : (c <= 7359 || (c < 7380 + ? (c >= 7376 && c <= 7378) + : c <= 7418))) + : (c <= 7957 || (c < 8008 + ? (c < 7968 + ? (c >= 7960 && c <= 7965) + : c <= 8005) + : (c <= 8013 || (c < 8025 + ? (c >= 8016 && c <= 8023) + : c <= 8025))))))))))) + : (c <= 8027 || (c < 11728 + ? (c < 8469 + ? (c < 8182 + ? (c < 8130 + ? (c < 8064 + ? (c < 8031 + ? c == 8029 + : c <= 8061) + : (c <= 8116 || (c < 8126 + ? (c >= 8118 && c <= 8124) + : c <= 8126))) + : (c <= 8132 || (c < 8150 + ? (c < 8144 + ? (c >= 8134 && c <= 8140) + : c <= 8147) + : (c <= 8155 || (c < 8178 + ? (c >= 8160 && c <= 8172) + : c <= 8180))))) + : (c <= 8188 || (c < 8400 + ? (c < 8305 + ? (c < 8276 + ? (c >= 8255 && c <= 8256) + : c <= 8276) + : (c <= 8305 || (c < 8336 + ? c == 8319 + : c <= 8348))) + : (c <= 8412 || (c < 8450 + ? (c < 8421 + ? c == 8417 + : c <= 8432) + : (c <= 8450 || (c < 8458 + ? c == 8455 + : c <= 8467))))))) + : (c <= 8469 || (c < 11520 + ? (c < 8508 + ? (c < 8486 + ? (c < 8484 + ? (c >= 8472 && c <= 8477) + : c <= 8484) + : (c <= 8486 || (c < 8490 + ? c == 8488 + : c <= 8505))) + : (c <= 8511 || (c < 8544 + ? (c < 8526 + ? (c >= 8517 && c <= 8521) + : c <= 8526) + : (c <= 8584 || (c < 11499 + ? (c >= 11264 && c <= 11492) + : c <= 11507))))) + : (c <= 11557 || (c < 11680 + ? (c < 11568 + ? (c < 11565 + ? c == 11559 + : c <= 11565) + : (c <= 11623 || (c < 11647 + ? c == 11631 + : c <= 11670))) + : (c <= 11686 || (c < 11704 + ? (c < 11696 + ? (c >= 11688 && c <= 11694) + : c <= 11702) + : (c <= 11710 || (c < 11720 + ? (c >= 11712 && c <= 11718) + : c <= 11726))))))))) + : (c <= 11734 || (c < 42775 + ? (c < 12549 + ? (c < 12344 + ? (c < 12293 + ? (c < 11744 + ? (c >= 11736 && c <= 11742) + : c <= 11775) + : (c <= 12295 || (c < 12337 + ? (c >= 12321 && c <= 12335) + : c <= 12341))) + : (c <= 12348 || (c < 12445 + ? (c < 12441 + ? (c >= 12353 && c <= 12438) + : c <= 12442) + : (c <= 12447 || (c < 12540 + ? (c >= 12449 && c <= 12538) + : c <= 12543))))) + : (c <= 12591 || (c < 42192 + ? (c < 12784 + ? (c < 12704 + ? (c >= 12593 && c <= 12686) + : c <= 12735) + : (c <= 12799 || (c < 19968 + ? (c >= 13312 && c <= 19903) + : c <= 42124))) + : (c <= 42237 || (c < 42560 + ? (c < 42512 + ? (c >= 42240 && c <= 42508) + : c <= 42539) + : (c <= 42607 || (c < 42623 + ? (c >= 42612 && c <= 42621) + : c <= 42737))))))) + : (c <= 42783 || (c < 43259 + ? (c < 42994 + ? (c < 42960 + ? (c < 42891 + ? (c >= 42786 && c <= 42888) + : c <= 42954) + : (c <= 42961 || (c < 42965 + ? c == 42963 + : c <= 42969))) + : (c <= 43047 || (c < 43136 + ? (c < 43072 + ? c == 43052 + : c <= 43123) + : (c <= 43205 || (c < 43232 + ? (c >= 43216 && c <= 43225) + : c <= 43255))))) + : (c <= 43259 || (c < 43488 + ? (c < 43360 + ? (c < 43312 + ? (c >= 43261 && c <= 43309) + : c <= 43347) + : (c <= 43388 || (c < 43471 + ? (c >= 43392 && c <= 43456) + : c <= 43481))) + : (c <= 43518 || (c < 43600 + ? (c < 43584 + ? (c >= 43520 && c <= 43574) + : c <= 43597) + : (c <= 43609 || (c >= 43616 && c <= 43638))))))))))))))) + : (c <= 43714 || (c < 71472 + ? (c < 67644 + ? (c < 65382 + ? (c < 64318 + ? (c < 44012 + ? (c < 43793 + ? (c < 43762 + ? (c < 43744 + ? (c >= 43739 && c <= 43741) + : c <= 43759) + : (c <= 43766 || (c < 43785 + ? (c >= 43777 && c <= 43782) + : c <= 43790))) + : (c <= 43798 || (c < 43824 + ? (c < 43816 + ? (c >= 43808 && c <= 43814) + : c <= 43822) + : (c <= 43866 || (c < 43888 + ? (c >= 43868 && c <= 43881) + : c <= 44010))))) + : (c <= 44013 || (c < 64112 + ? (c < 55216 + ? (c < 44032 + ? (c >= 44016 && c <= 44025) + : c <= 55203) + : (c <= 55238 || (c < 63744 + ? (c >= 55243 && c <= 55291) + : c <= 64109))) + : (c <= 64217 || (c < 64285 + ? (c < 64275 + ? (c >= 64256 && c <= 64262) + : c <= 64279) + : (c <= 64296 || (c < 64312 + ? (c >= 64298 && c <= 64310) + : c <= 64316))))))) + : (c <= 64318 || (c < 65101 + ? (c < 64848 + ? (c < 64326 + ? (c < 64323 + ? (c >= 64320 && c <= 64321) + : c <= 64324) + : (c <= 64433 || (c < 64612 + ? (c >= 64467 && c <= 64605) + : c <= 64829))) + : (c <= 64911 || (c < 65024 + ? (c < 65008 + ? (c >= 64914 && c <= 64967) + : c <= 65017) + : (c <= 65039 || (c < 65075 + ? (c >= 65056 && c <= 65071) + : c <= 65076))))) + : (c <= 65103 || (c < 65149 + ? (c < 65143 + ? (c < 65139 + ? c == 65137 + : c <= 65139) + : (c <= 65143 || (c < 65147 + ? c == 65145 + : c <= 65147))) + : (c <= 65149 || (c < 65313 + ? (c < 65296 + ? (c >= 65151 && c <= 65276) + : c <= 65305) + : (c <= 65338 || (c < 65345 + ? c == 65343 + : c <= 65370))))))))) + : (c <= 65470 || (c < 66560 + ? (c < 65856 + ? (c < 65549 + ? (c < 65490 + ? (c < 65482 + ? (c >= 65474 && c <= 65479) + : c <= 65487) + : (c <= 65495 || (c < 65536 + ? (c >= 65498 && c <= 65500) + : c <= 65547))) + : (c <= 65574 || (c < 65599 + ? (c < 65596 + ? (c >= 65576 && c <= 65594) + : c <= 65597) + : (c <= 65613 || (c < 65664 + ? (c >= 65616 && c <= 65629) + : c <= 65786))))) + : (c <= 65908 || (c < 66349 + ? (c < 66208 + ? (c < 66176 + ? c == 66045 + : c <= 66204) + : (c <= 66256 || (c < 66304 + ? c == 66272 + : c <= 66335))) + : (c <= 66378 || (c < 66464 + ? (c < 66432 + ? (c >= 66384 && c <= 66426) + : c <= 66461) + : (c <= 66499 || (c < 66513 + ? (c >= 66504 && c <= 66511) + : c <= 66517))))))) + : (c <= 66717 || (c < 66995 + ? (c < 66928 + ? (c < 66776 + ? (c < 66736 + ? (c >= 66720 && c <= 66729) + : c <= 66771) + : (c <= 66811 || (c < 66864 + ? (c >= 66816 && c <= 66855) + : c <= 66915))) + : (c <= 66938 || (c < 66964 + ? (c < 66956 + ? (c >= 66940 && c <= 66954) + : c <= 66962) + : (c <= 66965 || (c < 66979 + ? (c >= 66967 && c <= 66977) + : c <= 66993))))) + : (c <= 67001 || (c < 67463 + ? (c < 67392 + ? (c < 67072 + ? (c >= 67003 && c <= 67004) + : c <= 67382) + : (c <= 67413 || (c < 67456 + ? (c >= 67424 && c <= 67431) + : c <= 67461))) + : (c <= 67504 || (c < 67592 + ? (c < 67584 + ? (c >= 67506 && c <= 67514) + : c <= 67589) + : (c <= 67592 || (c < 67639 + ? (c >= 67594 && c <= 67637) + : c <= 67640))))))))))) + : (c <= 67644 || (c < 69968 + ? (c < 68480 + ? (c < 68108 + ? (c < 67840 + ? (c < 67712 + ? (c < 67680 + ? (c >= 67647 && c <= 67669) + : c <= 67702) + : (c <= 67742 || (c < 67828 + ? (c >= 67808 && c <= 67826) + : c <= 67829))) + : (c <= 67861 || (c < 68030 + ? (c < 67968 + ? (c >= 67872 && c <= 67897) + : c <= 68023) + : (c <= 68031 || (c < 68101 + ? (c >= 68096 && c <= 68099) + : c <= 68102))))) + : (c <= 68115 || (c < 68224 + ? (c < 68152 + ? (c < 68121 + ? (c >= 68117 && c <= 68119) + : c <= 68149) + : (c <= 68154 || (c < 68192 + ? c == 68159 + : c <= 68220))) + : (c <= 68252 || (c < 68352 + ? (c < 68297 + ? (c >= 68288 && c <= 68295) + : c <= 68326) + : (c <= 68405 || (c < 68448 + ? (c >= 68416 && c <= 68437) + : c <= 68466))))))) + : (c <= 68497 || (c < 69488 + ? (c < 69248 + ? (c < 68800 + ? (c < 68736 + ? (c >= 68608 && c <= 68680) + : c <= 68786) + : (c <= 68850 || (c < 68912 + ? (c >= 68864 && c <= 68903) + : c <= 68921))) + : (c <= 69289 || (c < 69376 + ? (c < 69296 + ? (c >= 69291 && c <= 69292) + : c <= 69297) + : (c <= 69404 || (c < 69424 + ? c == 69415 + : c <= 69456))))) + : (c <= 69509 || (c < 69826 + ? (c < 69632 + ? (c < 69600 + ? (c >= 69552 && c <= 69572) + : c <= 69622) + : (c <= 69702 || (c < 69759 + ? (c >= 69734 && c <= 69749) + : c <= 69818))) + : (c <= 69826 || (c < 69888 + ? (c < 69872 + ? (c >= 69840 && c <= 69864) + : c <= 69881) + : (c <= 69940 || (c < 69956 + ? (c >= 69942 && c <= 69951) + : c <= 69959))))))))) + : (c <= 70003 || (c < 70471 + ? (c < 70287 + ? (c < 70144 + ? (c < 70089 + ? (c < 70016 + ? c == 70006 + : c <= 70084) + : (c <= 70092 || (c < 70108 + ? (c >= 70094 && c <= 70106) + : c <= 70108))) + : (c <= 70161 || (c < 70272 + ? (c < 70206 + ? (c >= 70163 && c <= 70199) + : c <= 70206) + : (c <= 70278 || (c < 70282 + ? c == 70280 + : c <= 70285))))) + : (c <= 70301 || (c < 70415 + ? (c < 70384 + ? (c < 70320 + ? (c >= 70303 && c <= 70312) + : c <= 70378) + : (c <= 70393 || (c < 70405 + ? (c >= 70400 && c <= 70403) + : c <= 70412))) + : (c <= 70416 || (c < 70450 + ? (c < 70442 + ? (c >= 70419 && c <= 70440) + : c <= 70448) + : (c <= 70451 || (c < 70459 + ? (c >= 70453 && c <= 70457) + : c <= 70468))))))) + : (c <= 70472 || (c < 70864 + ? (c < 70512 + ? (c < 70487 + ? (c < 70480 + ? (c >= 70475 && c <= 70477) + : c <= 70480) + : (c <= 70487 || (c < 70502 + ? (c >= 70493 && c <= 70499) + : c <= 70508))) + : (c <= 70516 || (c < 70750 + ? (c < 70736 + ? (c >= 70656 && c <= 70730) + : c <= 70745) + : (c <= 70753 || (c < 70855 + ? (c >= 70784 && c <= 70853) + : c <= 70855))))) + : (c <= 70873 || (c < 71248 + ? (c < 71128 + ? (c < 71096 + ? (c >= 71040 && c <= 71093) + : c <= 71104) + : (c <= 71133 || (c < 71236 + ? (c >= 71168 && c <= 71232) + : c <= 71236))) + : (c <= 71257 || (c < 71424 + ? (c < 71360 + ? (c >= 71296 && c <= 71352) + : c <= 71369) + : (c <= 71450 || (c >= 71453 && c <= 71467))))))))))))) + : (c <= 71481 || (c < 119973 + ? (c < 82944 + ? (c < 72784 + ? (c < 72096 + ? (c < 71948 + ? (c < 71840 + ? (c < 71680 + ? (c >= 71488 && c <= 71494) + : c <= 71738) + : (c <= 71913 || (c < 71945 + ? (c >= 71935 && c <= 71942) + : c <= 71945))) + : (c <= 71955 || (c < 71991 + ? (c < 71960 + ? (c >= 71957 && c <= 71958) + : c <= 71989) + : (c <= 71992 || (c < 72016 + ? (c >= 71995 && c <= 72003) + : c <= 72025))))) + : (c <= 72103 || (c < 72272 + ? (c < 72163 + ? (c < 72154 + ? (c >= 72106 && c <= 72151) + : c <= 72161) + : (c <= 72164 || (c < 72263 + ? (c >= 72192 && c <= 72254) + : c <= 72263))) + : (c <= 72345 || (c < 72704 + ? (c < 72368 + ? c == 72349 + : c <= 72440) + : (c <= 72712 || (c < 72760 + ? (c >= 72714 && c <= 72758) + : c <= 72768))))))) + : (c <= 72793 || (c < 73063 + ? (c < 72971 + ? (c < 72873 + ? (c < 72850 + ? (c >= 72818 && c <= 72847) + : c <= 72871) + : (c <= 72886 || (c < 72968 + ? (c >= 72960 && c <= 72966) + : c <= 72969))) + : (c <= 73014 || (c < 73023 + ? (c < 73020 + ? c == 73018 + : c <= 73021) + : (c <= 73031 || (c < 73056 + ? (c >= 73040 && c <= 73049) + : c <= 73061))))) + : (c <= 73064 || (c < 73648 + ? (c < 73107 + ? (c < 73104 + ? (c >= 73066 && c <= 73102) + : c <= 73105) + : (c <= 73112 || (c < 73440 + ? (c >= 73120 && c <= 73129) + : c <= 73462))) + : (c <= 73648 || (c < 74880 + ? (c < 74752 + ? (c >= 73728 && c <= 74649) + : c <= 74862) + : (c <= 75075 || (c < 77824 + ? (c >= 77712 && c <= 77808) + : c <= 78894))))))))) + : (c <= 83526 || (c < 110581 + ? (c < 93053 + ? (c < 92880 + ? (c < 92768 + ? (c < 92736 + ? (c >= 92160 && c <= 92728) + : c <= 92766) + : (c <= 92777 || (c < 92864 + ? (c >= 92784 && c <= 92862) + : c <= 92873))) + : (c <= 92909 || (c < 92992 + ? (c < 92928 + ? (c >= 92912 && c <= 92916) + : c <= 92982) + : (c <= 92995 || (c < 93027 + ? (c >= 93008 && c <= 93017) + : c <= 93047))))) + : (c <= 93071 || (c < 94179 + ? (c < 94031 + ? (c < 93952 + ? (c >= 93760 && c <= 93823) + : c <= 94026) + : (c <= 94087 || (c < 94176 + ? (c >= 94095 && c <= 94111) + : c <= 94177))) + : (c <= 94180 || (c < 100352 + ? (c < 94208 + ? (c >= 94192 && c <= 94193) + : c <= 100343) + : (c <= 101589 || (c < 110576 + ? (c >= 101632 && c <= 101640) + : c <= 110579))))))) + : (c <= 110587 || (c < 118576 + ? (c < 113664 + ? (c < 110928 + ? (c < 110592 + ? (c >= 110589 && c <= 110590) + : c <= 110882) + : (c <= 110930 || (c < 110960 + ? (c >= 110948 && c <= 110951) + : c <= 111355))) + : (c <= 113770 || (c < 113808 + ? (c < 113792 + ? (c >= 113776 && c <= 113788) + : c <= 113800) + : (c <= 113817 || (c < 118528 + ? (c >= 113821 && c <= 113822) + : c <= 118573))))) + : (c <= 118598 || (c < 119362 + ? (c < 119163 + ? (c < 119149 + ? (c >= 119141 && c <= 119145) + : c <= 119154) + : (c <= 119170 || (c < 119210 + ? (c >= 119173 && c <= 119179) + : c <= 119213))) + : (c <= 119364 || (c < 119966 + ? (c < 119894 + ? (c >= 119808 && c <= 119892) + : c <= 119964) + : (c <= 119967 || c == 119970)))))))))) + : (c <= 119974 || (c < 124912 + ? (c < 120746 + ? (c < 120134 + ? (c < 120071 + ? (c < 119995 + ? (c < 119982 + ? (c >= 119977 && c <= 119980) + : c <= 119993) + : (c <= 119995 || (c < 120005 + ? (c >= 119997 && c <= 120003) + : c <= 120069))) + : (c <= 120074 || (c < 120094 + ? (c < 120086 + ? (c >= 120077 && c <= 120084) + : c <= 120092) + : (c <= 120121 || (c < 120128 + ? (c >= 120123 && c <= 120126) + : c <= 120132))))) + : (c <= 120134 || (c < 120572 + ? (c < 120488 + ? (c < 120146 + ? (c >= 120138 && c <= 120144) + : c <= 120485) + : (c <= 120512 || (c < 120540 + ? (c >= 120514 && c <= 120538) + : c <= 120570))) + : (c <= 120596 || (c < 120656 + ? (c < 120630 + ? (c >= 120598 && c <= 120628) + : c <= 120654) + : (c <= 120686 || (c < 120714 + ? (c >= 120688 && c <= 120712) + : c <= 120744))))))) + : (c <= 120770 || (c < 122907 + ? (c < 121476 + ? (c < 121344 + ? (c < 120782 + ? (c >= 120772 && c <= 120779) + : c <= 120831) + : (c <= 121398 || (c < 121461 + ? (c >= 121403 && c <= 121452) + : c <= 121461))) + : (c <= 121476 || (c < 122624 + ? (c < 121505 + ? (c >= 121499 && c <= 121503) + : c <= 121519) + : (c <= 122654 || (c < 122888 + ? (c >= 122880 && c <= 122886) + : c <= 122904))))) + : (c <= 122913 || (c < 123214 + ? (c < 123136 + ? (c < 122918 + ? (c >= 122915 && c <= 122916) + : c <= 122922) + : (c <= 123180 || (c < 123200 + ? (c >= 123184 && c <= 123197) + : c <= 123209))) + : (c <= 123214 || (c < 124896 + ? (c < 123584 + ? (c >= 123536 && c <= 123566) + : c <= 123641) + : (c <= 124902 || (c < 124909 + ? (c >= 124904 && c <= 124907) + : c <= 124910))))))))) + : (c <= 124926 || (c < 126557 + ? (c < 126521 + ? (c < 126469 + ? (c < 125184 + ? (c < 125136 + ? (c >= 124928 && c <= 125124) + : c <= 125142) + : (c <= 125259 || (c < 126464 + ? (c >= 125264 && c <= 125273) + : c <= 126467))) + : (c <= 126495 || (c < 126503 + ? (c < 126500 + ? (c >= 126497 && c <= 126498) + : c <= 126500) + : (c <= 126503 || (c < 126516 + ? (c >= 126505 && c <= 126514) + : c <= 126519))))) + : (c <= 126521 || (c < 126541 + ? (c < 126535 + ? (c < 126530 + ? c == 126523 + : c <= 126530) + : (c <= 126535 || (c < 126539 + ? c == 126537 + : c <= 126539))) + : (c <= 126543 || (c < 126551 + ? (c < 126548 + ? (c >= 126545 && c <= 126546) + : c <= 126548) + : (c <= 126551 || (c < 126555 + ? c == 126553 + : c <= 126555))))))) + : (c <= 126557 || (c < 126629 + ? (c < 126580 + ? (c < 126564 + ? (c < 126561 + ? c == 126559 + : c <= 126562) + : (c <= 126564 || (c < 126572 + ? (c >= 126567 && c <= 126570) + : c <= 126578))) + : (c <= 126583 || (c < 126592 + ? (c < 126590 + ? (c >= 126585 && c <= 126588) + : c <= 126590) + : (c <= 126601 || (c < 126625 + ? (c >= 126603 && c <= 126619) + : c <= 126627))))) + : (c <= 126633 || (c < 178208 + ? (c < 131072 + ? (c < 130032 + ? (c >= 126635 && c <= 126651) + : c <= 130041) + : (c <= 173791 || (c < 177984 + ? (c >= 173824 && c <= 177976) + : c <= 178205))) + : (c <= 183969 || (c < 196608 + ? (c < 194560 + ? (c >= 183984 && c <= 191456) + : c <= 195101) + : (c <= 201546 || (c >= 917760 && c <= 917999))))))))))))))))); +} + +static inline bool sym_identifier_character_set_3(int32_t c) { + return (c < 43616 + ? (c < 3782 + ? (c < 2748 + ? (c < 2045 + ? (c < 1015 + ? (c < 710 + ? (c < 181 + ? (c < '_' + ? (c < 'A' + ? (c >= '0' && c <= '9') + : c <= 'Z') + : (c <= '_' || (c < 170 + ? (c >= 'b' && c <= 'z') + : c <= 170))) + : (c <= 181 || (c < 192 + ? (c < 186 + ? c == 183 + : c <= 186) + : (c <= 214 || (c < 248 + ? (c >= 216 && c <= 246) + : c <= 705))))) + : (c <= 721 || (c < 891 + ? (c < 750 + ? (c < 748 + ? (c >= 736 && c <= 740) + : c <= 748) + : (c <= 750 || (c < 886 + ? (c >= 768 && c <= 884) + : c <= 887))) + : (c <= 893 || (c < 908 + ? (c < 902 + ? c == 895 + : c <= 906) + : (c <= 908 || (c < 931 + ? (c >= 910 && c <= 929) + : c <= 1013))))))) + : (c <= 1153 || (c < 1519 + ? (c < 1425 + ? (c < 1329 + ? (c < 1162 + ? (c >= 1155 && c <= 1159) + : c <= 1327) + : (c <= 1366 || (c < 1376 + ? c == 1369 + : c <= 1416))) + : (c <= 1469 || (c < 1476 + ? (c < 1473 + ? c == 1471 + : c <= 1474) + : (c <= 1477 || (c < 1488 + ? c == 1479 + : c <= 1514))))) + : (c <= 1522 || (c < 1770 + ? (c < 1646 + ? (c < 1568 + ? (c >= 1552 && c <= 1562) + : c <= 1641) + : (c <= 1747 || (c < 1759 + ? (c >= 1749 && c <= 1756) + : c <= 1768))) + : (c <= 1788 || (c < 1869 + ? (c < 1808 + ? c == 1791 + : c <= 1866) + : (c <= 1969 || (c < 2042 + ? (c >= 1984 && c <= 2037) + : c <= 2042))))))))) + : (c <= 2045 || (c < 2558 + ? (c < 2451 + ? (c < 2200 + ? (c < 2144 + ? (c < 2112 + ? (c >= 2048 && c <= 2093) + : c <= 2139) + : (c <= 2154 || (c < 2185 + ? (c >= 2160 && c <= 2183) + : c <= 2190))) + : (c <= 2273 || (c < 2417 + ? (c < 2406 + ? (c >= 2275 && c <= 2403) + : c <= 2415) + : (c <= 2435 || (c < 2447 + ? (c >= 2437 && c <= 2444) + : c <= 2448))))) + : (c <= 2472 || (c < 2507 + ? (c < 2486 + ? (c < 2482 + ? (c >= 2474 && c <= 2480) + : c <= 2482) + : (c <= 2489 || (c < 2503 + ? (c >= 2492 && c <= 2500) + : c <= 2504))) + : (c <= 2510 || (c < 2527 + ? (c < 2524 + ? c == 2519 + : c <= 2525) + : (c <= 2531 || (c < 2556 + ? (c >= 2534 && c <= 2545) + : c <= 2556))))))) + : (c <= 2558 || (c < 2635 + ? (c < 2610 + ? (c < 2575 + ? (c < 2565 + ? (c >= 2561 && c <= 2563) + : c <= 2570) + : (c <= 2576 || (c < 2602 + ? (c >= 2579 && c <= 2600) + : c <= 2608))) + : (c <= 2611 || (c < 2620 + ? (c < 2616 + ? (c >= 2613 && c <= 2614) + : c <= 2617) + : (c <= 2620 || (c < 2631 + ? (c >= 2622 && c <= 2626) + : c <= 2632))))) + : (c <= 2637 || (c < 2693 + ? (c < 2654 + ? (c < 2649 + ? c == 2641 + : c <= 2652) + : (c <= 2654 || (c < 2689 + ? (c >= 2662 && c <= 2677) + : c <= 2691))) + : (c <= 2701 || (c < 2730 + ? (c < 2707 + ? (c >= 2703 && c <= 2705) + : c <= 2728) + : (c <= 2736 || (c < 2741 + ? (c >= 2738 && c <= 2739) + : c <= 2745))))))))))) + : (c <= 2757 || (c < 3168 + ? (c < 2958 + ? (c < 2866 + ? (c < 2809 + ? (c < 2768 + ? (c < 2763 + ? (c >= 2759 && c <= 2761) + : c <= 2765) + : (c <= 2768 || (c < 2790 + ? (c >= 2784 && c <= 2787) + : c <= 2799))) + : (c <= 2815 || (c < 2831 + ? (c < 2821 + ? (c >= 2817 && c <= 2819) + : c <= 2828) + : (c <= 2832 || (c < 2858 + ? (c >= 2835 && c <= 2856) + : c <= 2864))))) + : (c <= 2867 || (c < 2908 + ? (c < 2887 + ? (c < 2876 + ? (c >= 2869 && c <= 2873) + : c <= 2884) + : (c <= 2888 || (c < 2901 + ? (c >= 2891 && c <= 2893) + : c <= 2903))) + : (c <= 2909 || (c < 2929 + ? (c < 2918 + ? (c >= 2911 && c <= 2915) + : c <= 2927) + : (c <= 2929 || (c < 2949 + ? (c >= 2946 && c <= 2947) + : c <= 2954))))))) + : (c <= 2960 || (c < 3031 + ? (c < 2984 + ? (c < 2972 + ? (c < 2969 + ? (c >= 2962 && c <= 2965) + : c <= 2970) + : (c <= 2972 || (c < 2979 + ? (c >= 2974 && c <= 2975) + : c <= 2980))) + : (c <= 2986 || (c < 3014 + ? (c < 3006 + ? (c >= 2990 && c <= 3001) + : c <= 3010) + : (c <= 3016 || (c < 3024 + ? (c >= 3018 && c <= 3021) + : c <= 3024))))) + : (c <= 3031 || (c < 3132 + ? (c < 3086 + ? (c < 3072 + ? (c >= 3046 && c <= 3055) + : c <= 3084) + : (c <= 3088 || (c < 3114 + ? (c >= 3090 && c <= 3112) + : c <= 3129))) + : (c <= 3140 || (c < 3157 + ? (c < 3146 + ? (c >= 3142 && c <= 3144) + : c <= 3149) + : (c <= 3158 || (c < 3165 + ? (c >= 3160 && c <= 3162) + : c <= 3165))))))))) + : (c <= 3171 || (c < 3450 + ? (c < 3293 + ? (c < 3242 + ? (c < 3205 + ? (c < 3200 + ? (c >= 3174 && c <= 3183) + : c <= 3203) + : (c <= 3212 || (c < 3218 + ? (c >= 3214 && c <= 3216) + : c <= 3240))) + : (c <= 3251 || (c < 3270 + ? (c < 3260 + ? (c >= 3253 && c <= 3257) + : c <= 3268) + : (c <= 3272 || (c < 3285 + ? (c >= 3274 && c <= 3277) + : c <= 3286))))) + : (c <= 3294 || (c < 3346 + ? (c < 3313 + ? (c < 3302 + ? (c >= 3296 && c <= 3299) + : c <= 3311) + : (c <= 3314 || (c < 3342 + ? (c >= 3328 && c <= 3340) + : c <= 3344))) + : (c <= 3396 || (c < 3412 + ? (c < 3402 + ? (c >= 3398 && c <= 3400) + : c <= 3406) + : (c <= 3415 || (c < 3430 + ? (c >= 3423 && c <= 3427) + : c <= 3439))))))) + : (c <= 3455 || (c < 3570 + ? (c < 3520 + ? (c < 3482 + ? (c < 3461 + ? (c >= 3457 && c <= 3459) + : c <= 3478) + : (c <= 3505 || (c < 3517 + ? (c >= 3507 && c <= 3515) + : c <= 3517))) + : (c <= 3526 || (c < 3542 + ? (c < 3535 + ? c == 3530 + : c <= 3540) + : (c <= 3542 || (c < 3558 + ? (c >= 3544 && c <= 3551) + : c <= 3567))))) + : (c <= 3571 || (c < 3718 + ? (c < 3664 + ? (c < 3648 + ? (c >= 3585 && c <= 3642) + : c <= 3662) + : (c <= 3673 || (c < 3716 + ? (c >= 3713 && c <= 3714) + : c <= 3716))) + : (c <= 3722 || (c < 3751 + ? (c < 3749 + ? (c >= 3724 && c <= 3747) + : c <= 3749) + : (c <= 3773 || (c >= 3776 && c <= 3780))))))))))))) + : (c <= 3782 || (c < 8025 + ? (c < 5888 + ? (c < 4688 + ? (c < 3953 + ? (c < 3872 + ? (c < 3804 + ? (c < 3792 + ? (c >= 3784 && c <= 3789) + : c <= 3801) + : (c <= 3807 || (c < 3864 + ? c == 3840 + : c <= 3865))) + : (c <= 3881 || (c < 3897 + ? (c < 3895 + ? c == 3893 + : c <= 3895) + : (c <= 3897 || (c < 3913 + ? (c >= 3902 && c <= 3911) + : c <= 3948))))) + : (c <= 3972 || (c < 4256 + ? (c < 4038 + ? (c < 3993 + ? (c >= 3974 && c <= 3991) + : c <= 4028) + : (c <= 4038 || (c < 4176 + ? (c >= 4096 && c <= 4169) + : c <= 4253))) + : (c <= 4293 || (c < 4304 + ? (c < 4301 + ? c == 4295 + : c <= 4301) + : (c <= 4346 || (c < 4682 + ? (c >= 4348 && c <= 4680) + : c <= 4685))))))) + : (c <= 4694 || (c < 4882 + ? (c < 4786 + ? (c < 4704 + ? (c < 4698 + ? c == 4696 + : c <= 4701) + : (c <= 4744 || (c < 4752 + ? (c >= 4746 && c <= 4749) + : c <= 4784))) + : (c <= 4789 || (c < 4802 + ? (c < 4800 + ? (c >= 4792 && c <= 4798) + : c <= 4800) + : (c <= 4805 || (c < 4824 + ? (c >= 4808 && c <= 4822) + : c <= 4880))))) + : (c <= 4885 || (c < 5112 + ? (c < 4969 + ? (c < 4957 + ? (c >= 4888 && c <= 4954) + : c <= 4959) + : (c <= 4977 || (c < 5024 + ? (c >= 4992 && c <= 5007) + : c <= 5109))) + : (c <= 5117 || (c < 5761 + ? (c < 5743 + ? (c >= 5121 && c <= 5740) + : c <= 5759) + : (c <= 5786 || (c < 5870 + ? (c >= 5792 && c <= 5866) + : c <= 5880))))))))) + : (c <= 5909 || (c < 6688 + ? (c < 6176 + ? (c < 6016 + ? (c < 5984 + ? (c < 5952 + ? (c >= 5919 && c <= 5940) + : c <= 5971) + : (c <= 5996 || (c < 6002 + ? (c >= 5998 && c <= 6000) + : c <= 6003))) + : (c <= 6099 || (c < 6112 + ? (c < 6108 + ? c == 6103 + : c <= 6109) + : (c <= 6121 || (c < 6159 + ? (c >= 6155 && c <= 6157) + : c <= 6169))))) + : (c <= 6264 || (c < 6470 + ? (c < 6400 + ? (c < 6320 + ? (c >= 6272 && c <= 6314) + : c <= 6389) + : (c <= 6430 || (c < 6448 + ? (c >= 6432 && c <= 6443) + : c <= 6459))) + : (c <= 6509 || (c < 6576 + ? (c < 6528 + ? (c >= 6512 && c <= 6516) + : c <= 6571) + : (c <= 6601 || (c < 6656 + ? (c >= 6608 && c <= 6618) + : c <= 6683))))))) + : (c <= 6750 || (c < 7232 + ? (c < 6847 + ? (c < 6800 + ? (c < 6783 + ? (c >= 6752 && c <= 6780) + : c <= 6793) + : (c <= 6809 || (c < 6832 + ? c == 6823 + : c <= 6845))) + : (c <= 6862 || (c < 7019 + ? (c < 6992 + ? (c >= 6912 && c <= 6988) + : c <= 7001) + : (c <= 7027 || (c < 7168 + ? (c >= 7040 && c <= 7155) + : c <= 7223))))) + : (c <= 7241 || (c < 7380 + ? (c < 7312 + ? (c < 7296 + ? (c >= 7245 && c <= 7293) + : c <= 7304) + : (c <= 7354 || (c < 7376 + ? (c >= 7357 && c <= 7359) + : c <= 7378))) + : (c <= 7418 || (c < 7968 + ? (c < 7960 + ? (c >= 7424 && c <= 7957) + : c <= 7965) + : (c <= 8005 || (c < 8016 + ? (c >= 8008 && c <= 8013) + : c <= 8023))))))))))) + : (c <= 8025 || (c < 11720 + ? (c < 8458 + ? (c < 8178 + ? (c < 8126 + ? (c < 8031 + ? (c < 8029 + ? c == 8027 + : c <= 8029) + : (c <= 8061 || (c < 8118 + ? (c >= 8064 && c <= 8116) + : c <= 8124))) + : (c <= 8126 || (c < 8144 + ? (c < 8134 + ? (c >= 8130 && c <= 8132) + : c <= 8140) + : (c <= 8147 || (c < 8160 + ? (c >= 8150 && c <= 8155) + : c <= 8172))))) + : (c <= 8180 || (c < 8336 + ? (c < 8276 + ? (c < 8255 + ? (c >= 8182 && c <= 8188) + : c <= 8256) + : (c <= 8276 || (c < 8319 + ? c == 8305 + : c <= 8319))) + : (c <= 8348 || (c < 8421 + ? (c < 8417 + ? (c >= 8400 && c <= 8412) + : c <= 8417) + : (c <= 8432 || (c < 8455 + ? c == 8450 + : c <= 8455))))))) + : (c <= 8467 || (c < 11499 + ? (c < 8490 + ? (c < 8484 + ? (c < 8472 + ? c == 8469 + : c <= 8477) + : (c <= 8484 || (c < 8488 + ? c == 8486 + : c <= 8488))) + : (c <= 8505 || (c < 8526 + ? (c < 8517 + ? (c >= 8508 && c <= 8511) + : c <= 8521) + : (c <= 8526 || (c < 11264 + ? (c >= 8544 && c <= 8584) + : c <= 11492))))) + : (c <= 11507 || (c < 11647 + ? (c < 11565 + ? (c < 11559 + ? (c >= 11520 && c <= 11557) + : c <= 11559) + : (c <= 11565 || (c < 11631 + ? (c >= 11568 && c <= 11623) + : c <= 11631))) + : (c <= 11670 || (c < 11696 + ? (c < 11688 + ? (c >= 11680 && c <= 11686) + : c <= 11694) + : (c <= 11702 || (c < 11712 + ? (c >= 11704 && c <= 11710) + : c <= 11718))))))))) + : (c <= 11726 || (c < 42623 + ? (c < 12540 + ? (c < 12337 + ? (c < 11744 + ? (c < 11736 + ? (c >= 11728 && c <= 11734) + : c <= 11742) + : (c <= 11775 || (c < 12321 + ? (c >= 12293 && c <= 12295) + : c <= 12335))) + : (c <= 12341 || (c < 12441 + ? (c < 12353 + ? (c >= 12344 && c <= 12348) + : c <= 12438) + : (c <= 12442 || (c < 12449 + ? (c >= 12445 && c <= 12447) + : c <= 12538))))) + : (c <= 12543 || (c < 19968 + ? (c < 12704 + ? (c < 12593 + ? (c >= 12549 && c <= 12591) + : c <= 12686) + : (c <= 12735 || (c < 13312 + ? (c >= 12784 && c <= 12799) + : c <= 19903))) + : (c <= 42124 || (c < 42512 + ? (c < 42240 + ? (c >= 42192 && c <= 42237) + : c <= 42508) + : (c <= 42539 || (c < 42612 + ? (c >= 42560 && c <= 42607) + : c <= 42621))))))) + : (c <= 42737 || (c < 43232 + ? (c < 42965 + ? (c < 42891 + ? (c < 42786 + ? (c >= 42775 && c <= 42783) + : c <= 42888) + : (c <= 42954 || (c < 42963 + ? (c >= 42960 && c <= 42961) + : c <= 42963))) + : (c <= 42969 || (c < 43072 + ? (c < 43052 + ? (c >= 42994 && c <= 43047) + : c <= 43052) + : (c <= 43123 || (c < 43216 + ? (c >= 43136 && c <= 43205) + : c <= 43225))))) + : (c <= 43255 || (c < 43471 + ? (c < 43312 + ? (c < 43261 + ? c == 43259 + : c <= 43309) + : (c <= 43347 || (c < 43392 + ? (c >= 43360 && c <= 43388) + : c <= 43456))) + : (c <= 43481 || (c < 43584 + ? (c < 43520 + ? (c >= 43488 && c <= 43518) + : c <= 43574) + : (c <= 43597 || (c >= 43600 && c <= 43609))))))))))))))) + : (c <= 43638 || (c < 71453 + ? (c < 67639 + ? (c < 65345 + ? (c < 64312 + ? (c < 43888 + ? (c < 43785 + ? (c < 43744 + ? (c < 43739 + ? (c >= 43642 && c <= 43714) + : c <= 43741) + : (c <= 43759 || (c < 43777 + ? (c >= 43762 && c <= 43766) + : c <= 43782))) + : (c <= 43790 || (c < 43816 + ? (c < 43808 + ? (c >= 43793 && c <= 43798) + : c <= 43814) + : (c <= 43822 || (c < 43868 + ? (c >= 43824 && c <= 43866) + : c <= 43881))))) + : (c <= 44010 || (c < 63744 + ? (c < 44032 + ? (c < 44016 + ? (c >= 44012 && c <= 44013) + : c <= 44025) + : (c <= 55203 || (c < 55243 + ? (c >= 55216 && c <= 55238) + : c <= 55291))) + : (c <= 64109 || (c < 64275 + ? (c < 64256 + ? (c >= 64112 && c <= 64217) + : c <= 64262) + : (c <= 64279 || (c < 64298 + ? (c >= 64285 && c <= 64296) + : c <= 64310))))))) + : (c <= 64316 || (c < 65075 + ? (c < 64612 + ? (c < 64323 + ? (c < 64320 + ? c == 64318 + : c <= 64321) + : (c <= 64324 || (c < 64467 + ? (c >= 64326 && c <= 64433) + : c <= 64605))) + : (c <= 64829 || (c < 65008 + ? (c < 64914 + ? (c >= 64848 && c <= 64911) + : c <= 64967) + : (c <= 65017 || (c < 65056 + ? (c >= 65024 && c <= 65039) + : c <= 65071))))) + : (c <= 65076 || (c < 65147 + ? (c < 65139 + ? (c < 65137 + ? (c >= 65101 && c <= 65103) + : c <= 65137) + : (c <= 65139 || (c < 65145 + ? c == 65143 + : c <= 65145))) + : (c <= 65147 || (c < 65296 + ? (c < 65151 + ? c == 65149 + : c <= 65276) + : (c <= 65305 || (c < 65343 + ? (c >= 65313 && c <= 65338) + : c <= 65343))))))))) + : (c <= 65370 || (c < 66513 + ? (c < 65664 + ? (c < 65536 + ? (c < 65482 + ? (c < 65474 + ? (c >= 65382 && c <= 65470) + : c <= 65479) + : (c <= 65487 || (c < 65498 + ? (c >= 65490 && c <= 65495) + : c <= 65500))) + : (c <= 65547 || (c < 65596 + ? (c < 65576 + ? (c >= 65549 && c <= 65574) + : c <= 65594) + : (c <= 65597 || (c < 65616 + ? (c >= 65599 && c <= 65613) + : c <= 65629))))) + : (c <= 65786 || (c < 66304 + ? (c < 66176 + ? (c < 66045 + ? (c >= 65856 && c <= 65908) + : c <= 66045) + : (c <= 66204 || (c < 66272 + ? (c >= 66208 && c <= 66256) + : c <= 66272))) + : (c <= 66335 || (c < 66432 + ? (c < 66384 + ? (c >= 66349 && c <= 66378) + : c <= 66426) + : (c <= 66461 || (c < 66504 + ? (c >= 66464 && c <= 66499) + : c <= 66511))))))) + : (c <= 66517 || (c < 66979 + ? (c < 66864 + ? (c < 66736 + ? (c < 66720 + ? (c >= 66560 && c <= 66717) + : c <= 66729) + : (c <= 66771 || (c < 66816 + ? (c >= 66776 && c <= 66811) + : c <= 66855))) + : (c <= 66915 || (c < 66956 + ? (c < 66940 + ? (c >= 66928 && c <= 66938) + : c <= 66954) + : (c <= 66962 || (c < 66967 + ? (c >= 66964 && c <= 66965) + : c <= 66977))))) + : (c <= 66993 || (c < 67456 + ? (c < 67072 + ? (c < 67003 + ? (c >= 66995 && c <= 67001) + : c <= 67004) + : (c <= 67382 || (c < 67424 + ? (c >= 67392 && c <= 67413) + : c <= 67431))) + : (c <= 67461 || (c < 67584 + ? (c < 67506 + ? (c >= 67463 && c <= 67504) + : c <= 67514) + : (c <= 67589 || (c < 67594 + ? c == 67592 + : c <= 67637))))))))))) + : (c <= 67640 || (c < 69956 + ? (c < 68448 + ? (c < 68101 + ? (c < 67828 + ? (c < 67680 + ? (c < 67647 + ? c == 67644 + : c <= 67669) + : (c <= 67702 || (c < 67808 + ? (c >= 67712 && c <= 67742) + : c <= 67826))) + : (c <= 67829 || (c < 67968 + ? (c < 67872 + ? (c >= 67840 && c <= 67861) + : c <= 67897) + : (c <= 68023 || (c < 68096 + ? (c >= 68030 && c <= 68031) + : c <= 68099))))) + : (c <= 68102 || (c < 68192 + ? (c < 68121 + ? (c < 68117 + ? (c >= 68108 && c <= 68115) + : c <= 68119) + : (c <= 68149 || (c < 68159 + ? (c >= 68152 && c <= 68154) + : c <= 68159))) + : (c <= 68220 || (c < 68297 + ? (c < 68288 + ? (c >= 68224 && c <= 68252) + : c <= 68295) + : (c <= 68326 || (c < 68416 + ? (c >= 68352 && c <= 68405) + : c <= 68437))))))) + : (c <= 68466 || (c < 69424 + ? (c < 68912 + ? (c < 68736 + ? (c < 68608 + ? (c >= 68480 && c <= 68497) + : c <= 68680) + : (c <= 68786 || (c < 68864 + ? (c >= 68800 && c <= 68850) + : c <= 68903))) + : (c <= 68921 || (c < 69296 + ? (c < 69291 + ? (c >= 69248 && c <= 69289) + : c <= 69292) + : (c <= 69297 || (c < 69415 + ? (c >= 69376 && c <= 69404) + : c <= 69415))))) + : (c <= 69456 || (c < 69759 + ? (c < 69600 + ? (c < 69552 + ? (c >= 69488 && c <= 69509) + : c <= 69572) + : (c <= 69622 || (c < 69734 + ? (c >= 69632 && c <= 69702) + : c <= 69749))) + : (c <= 69818 || (c < 69872 + ? (c < 69840 + ? c == 69826 + : c <= 69864) + : (c <= 69881 || (c < 69942 + ? (c >= 69888 && c <= 69940) + : c <= 69951))))))))) + : (c <= 69959 || (c < 70459 + ? (c < 70282 + ? (c < 70108 + ? (c < 70016 + ? (c < 70006 + ? (c >= 69968 && c <= 70003) + : c <= 70006) + : (c <= 70084 || (c < 70094 + ? (c >= 70089 && c <= 70092) + : c <= 70106))) + : (c <= 70108 || (c < 70206 + ? (c < 70163 + ? (c >= 70144 && c <= 70161) + : c <= 70199) + : (c <= 70206 || (c < 70280 + ? (c >= 70272 && c <= 70278) + : c <= 70280))))) + : (c <= 70285 || (c < 70405 + ? (c < 70320 + ? (c < 70303 + ? (c >= 70287 && c <= 70301) + : c <= 70312) + : (c <= 70378 || (c < 70400 + ? (c >= 70384 && c <= 70393) + : c <= 70403))) + : (c <= 70412 || (c < 70442 + ? (c < 70419 + ? (c >= 70415 && c <= 70416) + : c <= 70440) + : (c <= 70448 || (c < 70453 + ? (c >= 70450 && c <= 70451) + : c <= 70457))))))) + : (c <= 70468 || (c < 70855 + ? (c < 70502 + ? (c < 70480 + ? (c < 70475 + ? (c >= 70471 && c <= 70472) + : c <= 70477) + : (c <= 70480 || (c < 70493 + ? c == 70487 + : c <= 70499))) + : (c <= 70508 || (c < 70736 + ? (c < 70656 + ? (c >= 70512 && c <= 70516) + : c <= 70730) + : (c <= 70745 || (c < 70784 + ? (c >= 70750 && c <= 70753) + : c <= 70853))))) + : (c <= 70855 || (c < 71236 + ? (c < 71096 + ? (c < 71040 + ? (c >= 70864 && c <= 70873) + : c <= 71093) + : (c <= 71104 || (c < 71168 + ? (c >= 71128 && c <= 71133) + : c <= 71232))) + : (c <= 71236 || (c < 71360 + ? (c < 71296 + ? (c >= 71248 && c <= 71257) + : c <= 71352) + : (c <= 71369 || (c >= 71424 && c <= 71450))))))))))))) + : (c <= 71467 || (c < 119973 + ? (c < 77824 + ? (c < 72760 + ? (c < 72016 + ? (c < 71945 + ? (c < 71680 + ? (c < 71488 + ? (c >= 71472 && c <= 71481) + : c <= 71494) + : (c <= 71738 || (c < 71935 + ? (c >= 71840 && c <= 71913) + : c <= 71942))) + : (c <= 71945 || (c < 71960 + ? (c < 71957 + ? (c >= 71948 && c <= 71955) + : c <= 71958) + : (c <= 71989 || (c < 71995 + ? (c >= 71991 && c <= 71992) + : c <= 72003))))) + : (c <= 72025 || (c < 72263 + ? (c < 72154 + ? (c < 72106 + ? (c >= 72096 && c <= 72103) + : c <= 72151) + : (c <= 72161 || (c < 72192 + ? (c >= 72163 && c <= 72164) + : c <= 72254))) + : (c <= 72263 || (c < 72368 + ? (c < 72349 + ? (c >= 72272 && c <= 72345) + : c <= 72349) + : (c <= 72440 || (c < 72714 + ? (c >= 72704 && c <= 72712) + : c <= 72758))))))) + : (c <= 72768 || (c < 73056 + ? (c < 72968 + ? (c < 72850 + ? (c < 72818 + ? (c >= 72784 && c <= 72793) + : c <= 72847) + : (c <= 72871 || (c < 72960 + ? (c >= 72873 && c <= 72886) + : c <= 72966))) + : (c <= 72969 || (c < 73020 + ? (c < 73018 + ? (c >= 72971 && c <= 73014) + : c <= 73018) + : (c <= 73021 || (c < 73040 + ? (c >= 73023 && c <= 73031) + : c <= 73049))))) + : (c <= 73061 || (c < 73440 + ? (c < 73104 + ? (c < 73066 + ? (c >= 73063 && c <= 73064) + : c <= 73102) + : (c <= 73105 || (c < 73120 + ? (c >= 73107 && c <= 73112) + : c <= 73129))) + : (c <= 73462 || (c < 74752 + ? (c < 73728 + ? c == 73648 + : c <= 74649) + : (c <= 74862 || (c < 77712 + ? (c >= 74880 && c <= 75075) + : c <= 77808))))))))) + : (c <= 78894 || (c < 110576 + ? (c < 93027 + ? (c < 92864 + ? (c < 92736 + ? (c < 92160 + ? (c >= 82944 && c <= 83526) + : c <= 92728) + : (c <= 92766 || (c < 92784 + ? (c >= 92768 && c <= 92777) + : c <= 92862))) + : (c <= 92873 || (c < 92928 + ? (c < 92912 + ? (c >= 92880 && c <= 92909) + : c <= 92916) + : (c <= 92982 || (c < 93008 + ? (c >= 92992 && c <= 92995) + : c <= 93017))))) + : (c <= 93047 || (c < 94176 + ? (c < 93952 + ? (c < 93760 + ? (c >= 93053 && c <= 93071) + : c <= 93823) + : (c <= 94026 || (c < 94095 + ? (c >= 94031 && c <= 94087) + : c <= 94111))) + : (c <= 94177 || (c < 94208 + ? (c < 94192 + ? (c >= 94179 && c <= 94180) + : c <= 94193) + : (c <= 100343 || (c < 101632 + ? (c >= 100352 && c <= 101589) + : c <= 101640))))))) + : (c <= 110579 || (c < 118528 + ? (c < 110960 + ? (c < 110592 + ? (c < 110589 + ? (c >= 110581 && c <= 110587) + : c <= 110590) + : (c <= 110882 || (c < 110948 + ? (c >= 110928 && c <= 110930) + : c <= 110951))) + : (c <= 111355 || (c < 113792 + ? (c < 113776 + ? (c >= 113664 && c <= 113770) + : c <= 113788) + : (c <= 113800 || (c < 113821 + ? (c >= 113808 && c <= 113817) + : c <= 113822))))) + : (c <= 118573 || (c < 119210 + ? (c < 119149 + ? (c < 119141 + ? (c >= 118576 && c <= 118598) + : c <= 119145) + : (c <= 119154 || (c < 119173 + ? (c >= 119163 && c <= 119170) + : c <= 119179))) + : (c <= 119213 || (c < 119894 + ? (c < 119808 + ? (c >= 119362 && c <= 119364) + : c <= 119892) + : (c <= 119964 || (c < 119970 + ? (c >= 119966 && c <= 119967) + : c <= 119970))))))))))) + : (c <= 119974 || (c < 124912 + ? (c < 120746 + ? (c < 120134 + ? (c < 120071 + ? (c < 119995 + ? (c < 119982 + ? (c >= 119977 && c <= 119980) + : c <= 119993) + : (c <= 119995 || (c < 120005 + ? (c >= 119997 && c <= 120003) + : c <= 120069))) + : (c <= 120074 || (c < 120094 + ? (c < 120086 + ? (c >= 120077 && c <= 120084) + : c <= 120092) + : (c <= 120121 || (c < 120128 + ? (c >= 120123 && c <= 120126) + : c <= 120132))))) + : (c <= 120134 || (c < 120572 + ? (c < 120488 + ? (c < 120146 + ? (c >= 120138 && c <= 120144) + : c <= 120485) + : (c <= 120512 || (c < 120540 + ? (c >= 120514 && c <= 120538) + : c <= 120570))) + : (c <= 120596 || (c < 120656 + ? (c < 120630 + ? (c >= 120598 && c <= 120628) + : c <= 120654) + : (c <= 120686 || (c < 120714 + ? (c >= 120688 && c <= 120712) + : c <= 120744))))))) + : (c <= 120770 || (c < 122907 + ? (c < 121476 + ? (c < 121344 + ? (c < 120782 + ? (c >= 120772 && c <= 120779) + : c <= 120831) + : (c <= 121398 || (c < 121461 + ? (c >= 121403 && c <= 121452) + : c <= 121461))) + : (c <= 121476 || (c < 122624 + ? (c < 121505 + ? (c >= 121499 && c <= 121503) + : c <= 121519) + : (c <= 122654 || (c < 122888 + ? (c >= 122880 && c <= 122886) + : c <= 122904))))) + : (c <= 122913 || (c < 123214 + ? (c < 123136 + ? (c < 122918 + ? (c >= 122915 && c <= 122916) + : c <= 122922) + : (c <= 123180 || (c < 123200 + ? (c >= 123184 && c <= 123197) + : c <= 123209))) + : (c <= 123214 || (c < 124896 + ? (c < 123584 + ? (c >= 123536 && c <= 123566) + : c <= 123641) + : (c <= 124902 || (c < 124909 + ? (c >= 124904 && c <= 124907) + : c <= 124910))))))))) + : (c <= 124926 || (c < 126557 + ? (c < 126521 + ? (c < 126469 + ? (c < 125184 + ? (c < 125136 + ? (c >= 124928 && c <= 125124) + : c <= 125142) + : (c <= 125259 || (c < 126464 + ? (c >= 125264 && c <= 125273) + : c <= 126467))) + : (c <= 126495 || (c < 126503 + ? (c < 126500 + ? (c >= 126497 && c <= 126498) + : c <= 126500) + : (c <= 126503 || (c < 126516 + ? (c >= 126505 && c <= 126514) + : c <= 126519))))) + : (c <= 126521 || (c < 126541 + ? (c < 126535 + ? (c < 126530 + ? c == 126523 + : c <= 126530) + : (c <= 126535 || (c < 126539 + ? c == 126537 + : c <= 126539))) + : (c <= 126543 || (c < 126551 + ? (c < 126548 + ? (c >= 126545 && c <= 126546) + : c <= 126548) + : (c <= 126551 || (c < 126555 + ? c == 126553 + : c <= 126555))))))) + : (c <= 126557 || (c < 126629 + ? (c < 126580 + ? (c < 126564 + ? (c < 126561 + ? c == 126559 + : c <= 126562) + : (c <= 126564 || (c < 126572 + ? (c >= 126567 && c <= 126570) + : c <= 126578))) + : (c <= 126583 || (c < 126592 + ? (c < 126590 + ? (c >= 126585 && c <= 126588) + : c <= 126590) + : (c <= 126601 || (c < 126625 + ? (c >= 126603 && c <= 126619) + : c <= 126627))))) + : (c <= 126633 || (c < 178208 + ? (c < 131072 + ? (c < 130032 + ? (c >= 126635 && c <= 126651) + : c <= 130041) + : (c <= 173791 || (c < 177984 + ? (c >= 173824 && c <= 177976) + : c <= 178205))) + : (c <= 183969 || (c < 196608 + ? (c < 194560 + ? (c >= 183984 && c <= 191456) + : c <= 195101) + : (c <= 201546 || (c >= 917760 && c <= 917999))))))))))))))))); +} + +static inline bool sym_identifier_character_set_4(int32_t c) { return (c < 43616 ? (c < 3782 ? (c < 2748 @@ -2118,220 +4547,936 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(17); - if (lookahead == '"') ADVANCE(32); - if (lookahead == '#') ADVANCE(18); - if (lookahead == '+') ADVANCE(4); - if (lookahead == ',') ADVANCE(37); - if (lookahead == '-') ADVANCE(26); - if (lookahead == '=') ADVANCE(23); - if (lookahead == '[') ADVANCE(36); - if (lookahead == '\\') ADVANCE(5); - if (lookahead == ']') ADVANCE(38); - if (lookahead == '`') ADVANCE(15); + if (eof) ADVANCE(82); + if (lookahead == '"') ADVANCE(182); + if (lookahead == '#') ADVANCE(83); + if (lookahead == '(') ADVANCE(93); + if (lookahead == ')') ADVANCE(94); + if (lookahead == '+') ADVANCE(6); + if (lookahead == ',') ADVANCE(91); + if (lookahead == '-') ADVANCE(176); + if (lookahead == ':') ADVANCE(195); + if (lookahead == '=') ADVANCE(88); + if (lookahead == '[') ADVANCE(199); + if (lookahead == '\\') ADVANCE(7); + if (lookahead == ']') ADVANCE(200); + if (lookahead == '`') ADVANCE(79); + if (lookahead == 'd') ADVANCE(117); + if (lookahead == 'f') ADVANCE(99); + if (lookahead == 'p') ADVANCE(153); + if (lookahead == 'r') ADVANCE(125); + if (lookahead == 's') ADVANCE(127); + if (lookahead == 't') ADVANCE(154); + if (lookahead == 'u') ADVANCE(146); + if (lookahead == 'v') ADVANCE(102); + if (lookahead == '{') ADVANCE(90); + if (lookahead == '}') ADVANCE(92); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(16) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(27); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(25); + lookahead == ' ') SKIP(80) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(177); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(173); END_STATE(); case 1: if (lookahead == '\n') SKIP(2) - if (lookahead == '"') ADVANCE(32); - if (lookahead == '#') ADVANCE(19); - if (lookahead == '\\') ADVANCE(5); + if (lookahead == '"') ADVANCE(182); + if (lookahead == '#') ADVANCE(84); + if (lookahead == '\\') ADVANCE(7); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(30); - if (lookahead != 0) ADVANCE(31); + lookahead == ' ') ADVANCE(180); + if (lookahead != 0) ADVANCE(181); END_STATE(); case 2: if (lookahead == '\n') SKIP(2) - if (lookahead == '#') ADVANCE(19); + if (lookahead == '#') ADVANCE(84); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(30); + lookahead == ' ') ADVANCE(180); if (lookahead != 0 && lookahead != '"' && - lookahead != '\\') ADVANCE(31); + lookahead != '\\') ADVANCE(181); END_STATE(); case 3: - if (lookahead == '"') ADVANCE(29); - if (lookahead == '#') ADVANCE(18); - if (lookahead == '-') ADVANCE(26); - if (lookahead == '[') ADVANCE(36); - if (lookahead == ']') ADVANCE(38); - if (lookahead == '`') ADVANCE(15); + if (lookahead == '"') ADVANCE(179); + if (lookahead == '#') ADVANCE(83); + if (lookahead == '-') ADVANCE(176); + if (lookahead == '[') ADVANCE(199); + if (lookahead == ']') ADVANCE(200); + if (lookahead == '`') ADVANCE(79); + if (lookahead == 'f') ADVANCE(99); + if (lookahead == 's') ADVANCE(128); + if (lookahead == 't') ADVANCE(154); + if (lookahead == '{') ADVANCE(90); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(3) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(27); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(25); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(177); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(173); END_STATE(); case 4: - if (lookahead == '=') ADVANCE(24); + if (lookahead == '"') ADVANCE(179); + if (lookahead == '#') ADVANCE(83); + if (lookahead == '-') ADVANCE(176); + if (lookahead == '[') ADVANCE(199); + if (lookahead == '`') ADVANCE(79); + if (lookahead == 'f') ADVANCE(99); + if (lookahead == 's') ADVANCE(128); + if (lookahead == 't') ADVANCE(154); + if (lookahead == 'u') ADVANCE(146); + if (lookahead == '{') ADVANCE(90); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(4) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(177); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(173); END_STATE(); case 5: - if (lookahead == 'U') ADVANCE(14); - if (lookahead == 'u') ADVANCE(10); - if (lookahead == 'x') ADVANCE(8); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(35); - if (lookahead != 0) ADVANCE(33); + if (lookahead == '"') ADVANCE(179); + if (lookahead == '#') ADVANCE(83); + if (lookahead == '`') ADVANCE(79); + if (lookahead == 'd') ADVANCE(29); + if (lookahead == 'p') ADVANCE(58); + if (lookahead == 'r') ADVANCE(30); + if (lookahead == 's') ADVANCE(55); + if (lookahead == 'v') ADVANCE(16); + if (lookahead == '}') ADVANCE(92); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(5) END_STATE(); case 6: - if (lookahead == '`') ADVANCE(28); - if (lookahead != 0) ADVANCE(6); + if (lookahead == '=') ADVANCE(89); END_STATE(); case 7: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(33); + if (lookahead == 'U') ADVANCE(78); + if (lookahead == 'u') ADVANCE(74); + if (lookahead == 'x') ADVANCE(72); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(185); + if (lookahead != 0) ADVANCE(183); END_STATE(); case 8: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(7); + if (lookahead == '_') ADVANCE(68); END_STATE(); case 9: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(8); + if (lookahead == '_') ADVANCE(27); END_STATE(); case 10: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(9); + if (lookahead == '_') ADVANCE(69); END_STATE(); case 11: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(10); + if (lookahead == '_') ADVANCE(70); END_STATE(); case 12: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(11); + if (lookahead == '`') ADVANCE(178); + if (lookahead != 0) ADVANCE(12); END_STATE(); case 13: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(12); + if (lookahead == 'a') ADVANCE(67); END_STATE(); case 14: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(13); + if (lookahead == 'a') ADVANCE(62); END_STATE(); case 15: - if (lookahead != 0 && - lookahead != '`') ADVANCE(6); + if (lookahead == 'a') ADVANCE(23); END_STATE(); case 16: - if (eof) ADVANCE(17); - if (lookahead == '"') ADVANCE(29); - if (lookahead == '#') ADVANCE(18); - if (lookahead == '+') ADVANCE(4); - if (lookahead == ',') ADVANCE(37); - if (lookahead == '-') ADVANCE(26); - if (lookahead == '=') ADVANCE(23); - if (lookahead == '[') ADVANCE(36); - if (lookahead == ']') ADVANCE(38); - if (lookahead == '`') ADVANCE(15); - if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(16) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(27); - if (sym_identifier_character_set_1(lookahead)) ADVANCE(25); + if (lookahead == 'a') ADVANCE(57); END_STATE(); case 17: - ACCEPT_TOKEN(ts_builtin_sym_end); + if (lookahead == 'a') ADVANCE(52); END_STATE(); case 18: - ACCEPT_TOKEN(anon_sym_POUND); + if (lookahead == 'a') ADVANCE(59); END_STATE(); case 19: - ACCEPT_TOKEN(anon_sym_POUND); - if (lookahead != 0 && - lookahead != '\n' && - lookahead != '"' && - lookahead != '\\') ADVANCE(31); + if (lookahead == 'a') ADVANCE(24); END_STATE(); case 20: - ACCEPT_TOKEN(anon_sym_POUND); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(22); + if (lookahead == 'a') ADVANCE(60); END_STATE(); case 21: - ACCEPT_TOKEN(aux_sym_comment_token1); - if (lookahead == '#') ADVANCE(20); - if (lookahead == '\t' || - (11 <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(21); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(22); + if (lookahead == 'a') ADVANCE(25); END_STATE(); case 22: - ACCEPT_TOKEN(aux_sym_comment_token1); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(22); + if (lookahead == 'a') ADVANCE(61); END_STATE(); case 23: - ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == 'b') ADVANCE(47); END_STATE(); case 24: - ACCEPT_TOKEN(anon_sym_PLUS_EQ); + if (lookahead == 'b') ADVANCE(48); END_STATE(); case 25: - ACCEPT_TOKEN(sym_identifier); - if (sym_identifier_character_set_2(lookahead)) ADVANCE(25); + if (lookahead == 'b') ADVANCE(49); END_STATE(); case 26: - ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == 'c') ADVANCE(65); END_STATE(); case 27: - ACCEPT_TOKEN(aux_sym_integer_literal_token1); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(27); + if (lookahead == 'c') ADVANCE(56); END_STATE(); case 28: - ACCEPT_TOKEN(sym_raw_string_literal); + if (lookahead == 'd') ADVANCE(66); END_STATE(); case 29: - ACCEPT_TOKEN(anon_sym_DQUOTE); + if (lookahead == 'e') ADVANCE(36); END_STATE(); case 30: - ACCEPT_TOKEN(aux_sym_interpreted_string_literal_token1); - if (lookahead == '#') ADVANCE(19); - if (lookahead == '\t' || - (11 <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(30); - if (lookahead != 0 && - lookahead != '\n' && - lookahead != '"' && - lookahead != '\\') ADVANCE(31); + if (lookahead == 'e') ADVANCE(46); END_STATE(); case 31: + if (lookahead == 'e') ADVANCE(187); + END_STATE(); + case 32: + if (lookahead == 'e') ADVANCE(189); + END_STATE(); + case 33: + if (lookahead == 'e') ADVANCE(193); + END_STATE(); + case 34: + if (lookahead == 'e') ADVANCE(14); + END_STATE(); + case 35: + if (lookahead == 'e') ADVANCE(10); + END_STATE(); + case 36: + if (lookahead == 'f') ADVANCE(13); + END_STATE(); + case 37: + if (lookahead == 'f') ADVANCE(42); + END_STATE(); + case 38: + if (lookahead == 'g') ADVANCE(9); + END_STATE(); + case 39: + if (lookahead == 'g') ADVANCE(11); + END_STATE(); + case 40: + if (lookahead == 'i') ADVANCE(17); + END_STATE(); + case 41: + if (lookahead == 'i') ADVANCE(15); + END_STATE(); + case 42: + if (lookahead == 'i') ADVANCE(39); + END_STATE(); + case 43: + if (lookahead == 'i') ADVANCE(19); + END_STATE(); + case 44: + if (lookahead == 'i') ADVANCE(21); + END_STATE(); + case 45: + if (lookahead == 'l') ADVANCE(63); + END_STATE(); + case 46: + if (lookahead == 'l') ADVANCE(34); + END_STATE(); + case 47: + if (lookahead == 'l') ADVANCE(31); + END_STATE(); + case 48: + if (lookahead == 'l') ADVANCE(32); + END_STATE(); + case 49: + if (lookahead == 'l') ADVANCE(33); + END_STATE(); + case 50: + if (lookahead == 'n') ADVANCE(38); + END_STATE(); + case 51: + if (lookahead == 'n') ADVANCE(37); + END_STATE(); + case 52: + if (lookahead == 'n') ADVANCE(64); + END_STATE(); + case 53: + if (lookahead == 'o') ADVANCE(28); + END_STATE(); + case 54: + if (lookahead == 'o') ADVANCE(50); + END_STATE(); + case 55: + if (lookahead == 'o') ADVANCE(54); + END_STATE(); + case 56: + if (lookahead == 'o') ADVANCE(51); + END_STATE(); + case 57: + if (lookahead == 'r') ADVANCE(40); + END_STATE(); + case 58: + if (lookahead == 'r') ADVANCE(53); + END_STATE(); + case 59: + if (lookahead == 'r') ADVANCE(41); + END_STATE(); + case 60: + if (lookahead == 'r') ADVANCE(43); + END_STATE(); + case 61: + if (lookahead == 'r') ADVANCE(44); + END_STATE(); + case 62: + if (lookahead == 's') ADVANCE(35); + END_STATE(); + case 63: + if (lookahead == 't') ADVANCE(196); + END_STATE(); + case 64: + if (lookahead == 't') ADVANCE(191); + END_STATE(); + case 65: + if (lookahead == 't') ADVANCE(8); + END_STATE(); + case 66: + if (lookahead == 'u') ADVANCE(26); + END_STATE(); + case 67: + if (lookahead == 'u') ADVANCE(45); + END_STATE(); + case 68: + if (lookahead == 'v') ADVANCE(18); + END_STATE(); + case 69: + if (lookahead == 'v') ADVANCE(20); + END_STATE(); + case 70: + if (lookahead == 'v') ADVANCE(22); + END_STATE(); + case 71: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(183); + END_STATE(); + case 72: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(71); + END_STATE(); + case 73: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(72); + END_STATE(); + case 74: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(73); + END_STATE(); + case 75: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(74); + END_STATE(); + case 76: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(75); + END_STATE(); + case 77: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(76); + END_STATE(); + case 78: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(77); + END_STATE(); + case 79: + if (lookahead != 0 && + lookahead != '`') ADVANCE(12); + END_STATE(); + case 80: + if (eof) ADVANCE(82); + if (lookahead == '"') ADVANCE(179); + if (lookahead == '#') ADVANCE(83); + if (lookahead == '(') ADVANCE(93); + if (lookahead == ')') ADVANCE(94); + if (lookahead == '+') ADVANCE(6); + if (lookahead == ',') ADVANCE(91); + if (lookahead == '-') ADVANCE(176); + if (lookahead == ':') ADVANCE(195); + if (lookahead == '=') ADVANCE(88); + if (lookahead == '[') ADVANCE(199); + if (lookahead == ']') ADVANCE(200); + if (lookahead == '`') ADVANCE(79); + if (lookahead == 'd') ADVANCE(117); + if (lookahead == 'f') ADVANCE(99); + if (lookahead == 'p') ADVANCE(153); + if (lookahead == 'r') ADVANCE(125); + if (lookahead == 's') ADVANCE(127); + if (lookahead == 't') ADVANCE(154); + if (lookahead == 'u') ADVANCE(146); + if (lookahead == 'v') ADVANCE(102); + if (lookahead == '{') ADVANCE(90); + if (lookahead == '}') ADVANCE(92); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(80) + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(177); + if (sym_identifier_character_set_1(lookahead)) ADVANCE(173); + END_STATE(); + case 81: + if (eof) ADVANCE(82); + if (lookahead == '"') ADVANCE(179); + if (lookahead == '#') ADVANCE(83); + if (lookahead == ')') ADVANCE(94); + if (lookahead == ',') ADVANCE(91); + if (lookahead == ':') ADVANCE(195); + if (lookahead == ']') ADVANCE(200); + if (lookahead == '`') ADVANCE(79); + if (lookahead == '}') ADVANCE(92); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(81) + if (sym_identifier_character_set_1(lookahead)) ADVANCE(173); + END_STATE(); + case 82: + ACCEPT_TOKEN(ts_builtin_sym_end); + END_STATE(); + case 83: + ACCEPT_TOKEN(anon_sym_POUND); + END_STATE(); + case 84: + ACCEPT_TOKEN(anon_sym_POUND); + if (lookahead != 0 && + lookahead != '\n' && + lookahead != '"' && + lookahead != '\\') ADVANCE(181); + END_STATE(); + case 85: + ACCEPT_TOKEN(anon_sym_POUND); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(87); + END_STATE(); + case 86: + ACCEPT_TOKEN(aux_sym_comment_token1); + if (lookahead == '#') ADVANCE(85); + if (lookahead == '\t' || + (11 <= lookahead && lookahead <= '\r') || + lookahead == ' ') ADVANCE(86); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(87); + END_STATE(); + case 87: + ACCEPT_TOKEN(aux_sym_comment_token1); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(87); + END_STATE(); + case 88: + ACCEPT_TOKEN(anon_sym_EQ); + END_STATE(); + case 89: + ACCEPT_TOKEN(anon_sym_PLUS_EQ); + END_STATE(); + case 90: + ACCEPT_TOKEN(anon_sym_LBRACE); + END_STATE(); + case 91: + ACCEPT_TOKEN(anon_sym_COMMA); + END_STATE(); + case 92: + ACCEPT_TOKEN(anon_sym_RBRACE); + END_STATE(); + case 93: + ACCEPT_TOKEN(anon_sym_LPAREN); + END_STATE(); + case 94: + ACCEPT_TOKEN(anon_sym_RPAREN); + END_STATE(); + case 95: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '_') ADVANCE(170); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(173); + END_STATE(); + case 96: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '_') ADVANCE(114); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(173); + END_STATE(); + case 97: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '_') ADVANCE(171); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(173); + END_STATE(); + case 98: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '_') ADVANCE(172); + if (sym_identifier_character_set_2(lookahead)) ADVANCE(173); + END_STATE(); + case 99: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(145); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(173); + END_STATE(); + case 100: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(110); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(173); + END_STATE(); + case 101: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(167); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(173); + END_STATE(); + case 102: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(155); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(173); + END_STATE(); + case 103: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(149); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(173); + END_STATE(); + case 104: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(156); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(173); + END_STATE(); + case 105: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(161); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(173); + END_STATE(); + case 106: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(111); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(173); + END_STATE(); + case 107: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(157); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(173); + END_STATE(); + case 108: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(112); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(173); + END_STATE(); + case 109: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(158); + if (sym_identifier_character_set_3(lookahead)) ADVANCE(173); + END_STATE(); + case 110: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'b') ADVANCE(142); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 111: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'b') ADVANCE(143); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 112: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'b') ADVANCE(144); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 113: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'c') ADVANCE(163); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 114: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'c') ADVANCE(152); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 115: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'c') ADVANCE(166); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 116: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'd') ADVANCE(169); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 117: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(131); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 118: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(113); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 119: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(174); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 120: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(162); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 121: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(175); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 122: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(188); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 123: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(190); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 124: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(194); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 125: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(139); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 126: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(105); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 127: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(141); + if (lookahead == 'o') ADVANCE(151); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 128: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(141); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 129: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(97); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 130: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'f') ADVANCE(136); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 131: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'f') ADVANCE(101); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 132: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'g') ADVANCE(96); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 133: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'g') ADVANCE(98); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 134: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(103); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 135: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(100); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 136: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(133); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 137: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(106); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 138: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(108); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 139: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(126); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 140: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(164); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 141: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(118); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 142: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(122); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 143: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(123); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 144: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(124); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 145: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(160); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 146: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(159); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 147: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(132); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 148: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(130); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 149: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(165); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 150: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(116); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 151: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(147); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 152: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(148); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 153: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(150); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 154: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(168); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 155: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(134); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 156: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(135); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 157: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(137); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 158: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(138); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 159: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(120); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 160: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(121); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 161: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(129); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 162: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(198); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 163: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(186); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 164: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(197); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 165: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(192); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 166: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(95); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 167: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(140); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 168: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(119); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 169: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(115); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 170: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'v') ADVANCE(104); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 171: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'v') ADVANCE(107); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 172: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'v') ADVANCE(109); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 173: + ACCEPT_TOKEN(sym_identifier); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 174: + ACCEPT_TOKEN(anon_sym_true); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 175: + ACCEPT_TOKEN(anon_sym_false); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 176: + ACCEPT_TOKEN(anon_sym_DASH); + END_STATE(); + case 177: + ACCEPT_TOKEN(aux_sym_integer_literal_token1); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(177); + END_STATE(); + case 178: + ACCEPT_TOKEN(sym_raw_string_literal); + END_STATE(); + case 179: + ACCEPT_TOKEN(anon_sym_DQUOTE); + END_STATE(); + case 180: + ACCEPT_TOKEN(aux_sym_interpreted_string_literal_token1); + if (lookahead == '#') ADVANCE(84); + if (lookahead == '\t' || + (11 <= lookahead && lookahead <= '\r') || + lookahead == ' ') ADVANCE(180); + if (lookahead != 0 && + lookahead != '\n' && + lookahead != '"' && + lookahead != '\\') ADVANCE(181); + END_STATE(); + case 181: ACCEPT_TOKEN(aux_sym_interpreted_string_literal_token1); if (lookahead != 0 && lookahead != '\n' && lookahead != '"' && - lookahead != '\\') ADVANCE(31); + lookahead != '\\') ADVANCE(181); END_STATE(); - case 32: + case 182: ACCEPT_TOKEN(anon_sym_DQUOTE2); END_STATE(); - case 33: + case 183: ACCEPT_TOKEN(sym_escape_sequence); END_STATE(); - case 34: + case 184: ACCEPT_TOKEN(sym_escape_sequence); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(33); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(183); END_STATE(); - case 35: + case 185: ACCEPT_TOKEN(sym_escape_sequence); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(34); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(184); END_STATE(); - case 36: + case 186: + ACCEPT_TOKEN(anon_sym_select); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 187: + ACCEPT_TOKEN(anon_sym_product_variable); + END_STATE(); + case 188: + ACCEPT_TOKEN(anon_sym_product_variable); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 189: + ACCEPT_TOKEN(anon_sym_release_variable); + END_STATE(); + case 190: + ACCEPT_TOKEN(anon_sym_release_variable); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 191: + ACCEPT_TOKEN(anon_sym_variant); + END_STATE(); + case 192: + ACCEPT_TOKEN(anon_sym_variant); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 193: + ACCEPT_TOKEN(anon_sym_soong_config_variable); + END_STATE(); + case 194: + ACCEPT_TOKEN(anon_sym_soong_config_variable); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 195: + ACCEPT_TOKEN(anon_sym_COLON); + END_STATE(); + case 196: + ACCEPT_TOKEN(anon_sym_default); + END_STATE(); + case 197: + ACCEPT_TOKEN(anon_sym_default); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 198: + ACCEPT_TOKEN(anon_sym_unset); + if (sym_identifier_character_set_4(lookahead)) ADVANCE(173); + END_STATE(); + case 199: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 37: - ACCEPT_TOKEN(anon_sym_COMMA); - END_STATE(); - case 38: + case 200: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); default: @@ -2341,40 +5486,122 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, - [1] = {.lex_state = 0}, - [2] = {.lex_state = 3}, - [3] = {.lex_state = 3}, + [1] = {.lex_state = 81}, + [2] = {.lex_state = 4}, + [3] = {.lex_state = 4}, [4] = {.lex_state = 3}, [5] = {.lex_state = 3}, [6] = {.lex_state = 3}, - [7] = {.lex_state = 0}, - [8] = {.lex_state = 0}, - [9] = {.lex_state = 0}, - [10] = {.lex_state = 0}, - [11] = {.lex_state = 0}, - [12] = {.lex_state = 0}, - [13] = {.lex_state = 0}, - [14] = {.lex_state = 0}, - [15] = {.lex_state = 0}, - [16] = {.lex_state = 1}, - [17] = {.lex_state = 0}, - [18] = {.lex_state = 0}, - [19] = {.lex_state = 1}, - [20] = {.lex_state = 0}, - [21] = {.lex_state = 1}, - [22] = {.lex_state = 0}, - [23] = {.lex_state = 1}, - [24] = {.lex_state = 0}, - [25] = {.lex_state = 0}, - [26] = {.lex_state = 0}, - [27] = {.lex_state = 0}, - [28] = {.lex_state = 0}, - [29] = {.lex_state = 0}, - [30] = {.lex_state = 0}, - [31] = {.lex_state = 21}, - [32] = {.lex_state = 0}, - [33] = {.lex_state = 0}, - [34] = {(TSStateId)(-1)}, + [7] = {.lex_state = 3}, + [8] = {.lex_state = 3}, + [9] = {.lex_state = 3}, + [10] = {.lex_state = 3}, + [11] = {.lex_state = 5}, + [12] = {.lex_state = 5}, + [13] = {.lex_state = 5}, + [14] = {.lex_state = 81}, + [15] = {.lex_state = 81}, + [16] = {.lex_state = 81}, + [17] = {.lex_state = 81}, + [18] = {.lex_state = 81}, + [19] = {.lex_state = 81}, + [20] = {.lex_state = 5}, + [21] = {.lex_state = 81}, + [22] = {.lex_state = 81}, + [23] = {.lex_state = 81}, + [24] = {.lex_state = 81}, + [25] = {.lex_state = 81}, + [26] = {.lex_state = 81}, + [27] = {.lex_state = 81}, + [28] = {.lex_state = 81}, + [29] = {.lex_state = 81}, + [30] = {.lex_state = 81}, + [31] = {.lex_state = 81}, + [32] = {.lex_state = 81}, + [33] = {.lex_state = 81}, + [34] = {.lex_state = 81}, + [35] = {.lex_state = 81}, + [36] = {.lex_state = 1}, + [37] = {.lex_state = 0}, + [38] = {.lex_state = 1}, + [39] = {.lex_state = 5}, + [40] = {.lex_state = 81}, + [41] = {.lex_state = 1}, + [42] = {.lex_state = 81}, + [43] = {.lex_state = 0}, + [44] = {.lex_state = 81}, + [45] = {.lex_state = 0}, + [46] = {.lex_state = 81}, + [47] = {.lex_state = 0}, + [48] = {.lex_state = 81}, + [49] = {.lex_state = 81}, + [50] = {.lex_state = 1}, + [51] = {.lex_state = 0}, + [52] = {.lex_state = 0}, + [53] = {.lex_state = 81}, + [54] = {.lex_state = 81}, + [55] = {.lex_state = 0}, + [56] = {.lex_state = 81}, + [57] = {.lex_state = 0}, + [58] = {.lex_state = 0}, + [59] = {.lex_state = 81}, + [60] = {.lex_state = 0}, + [61] = {.lex_state = 81}, + [62] = {.lex_state = 0}, + [63] = {.lex_state = 0}, + [64] = {.lex_state = 81}, + [65] = {.lex_state = 81}, + [66] = {.lex_state = 81}, + [67] = {.lex_state = 0}, + [68] = {.lex_state = 0}, + [69] = {.lex_state = 81}, + [70] = {.lex_state = 0}, + [71] = {.lex_state = 81}, + [72] = {.lex_state = 81}, + [73] = {.lex_state = 81}, + [74] = {.lex_state = 0}, + [75] = {.lex_state = 81}, + [76] = {.lex_state = 0}, + [77] = {.lex_state = 81}, + [78] = {.lex_state = 0}, + [79] = {.lex_state = 81}, + [80] = {.lex_state = 81}, + [81] = {.lex_state = 81}, + [82] = {.lex_state = 81}, + [83] = {.lex_state = 81}, + [84] = {.lex_state = 81}, + [85] = {.lex_state = 81}, + [86] = {.lex_state = 81}, + [87] = {.lex_state = 0}, + [88] = {.lex_state = 0}, + [89] = {.lex_state = 0}, + [90] = {.lex_state = 0}, + [91] = {.lex_state = 0}, + [92] = {.lex_state = 0}, + [93] = {.lex_state = 0}, + [94] = {.lex_state = 0}, + [95] = {.lex_state = 0}, + [96] = {.lex_state = 0}, + [97] = {.lex_state = 0}, + [98] = {.lex_state = 0}, + [99] = {.lex_state = 0}, + [100] = {.lex_state = 0}, + [101] = {.lex_state = 0}, + [102] = {.lex_state = 0}, + [103] = {.lex_state = 0}, + [104] = {.lex_state = 0}, + [105] = {.lex_state = 86}, + [106] = {.lex_state = 0}, + [107] = {.lex_state = 0}, + [108] = {.lex_state = 0}, + [109] = {.lex_state = 0}, + [110] = {.lex_state = 0}, + [111] = {.lex_state = 0}, + [112] = {.lex_state = 0}, + [113] = {.lex_state = 0}, + [114] = {.lex_state = 0}, + [115] = {.lex_state = 0}, + [116] = {(TSStateId)(-1)}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2384,23 +5611,40 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_POUND] = ACTIONS(3), [anon_sym_EQ] = ACTIONS(1), [anon_sym_PLUS_EQ] = ACTIONS(1), + [anon_sym_LBRACE] = ACTIONS(1), + [anon_sym_COMMA] = ACTIONS(1), + [anon_sym_RBRACE] = ACTIONS(1), + [anon_sym_LPAREN] = ACTIONS(1), + [anon_sym_RPAREN] = ACTIONS(1), [sym_identifier] = ACTIONS(1), + [anon_sym_true] = ACTIONS(1), + [anon_sym_false] = ACTIONS(1), [anon_sym_DASH] = ACTIONS(1), [aux_sym_integer_literal_token1] = ACTIONS(1), [sym_raw_string_literal] = ACTIONS(1), [anon_sym_DQUOTE] = ACTIONS(1), [anon_sym_DQUOTE2] = ACTIONS(1), [sym_escape_sequence] = ACTIONS(1), + [anon_sym_select] = ACTIONS(1), + [anon_sym_product_variable] = ACTIONS(1), + [anon_sym_release_variable] = ACTIONS(1), + [anon_sym_variant] = ACTIONS(1), + [anon_sym_soong_config_variable] = ACTIONS(1), + [anon_sym_COLON] = ACTIONS(1), + [anon_sym_default] = ACTIONS(1), + [anon_sym_unset] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), - [anon_sym_COMMA] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(33), - [sym__definition] = STATE(27), + [sym_source_file] = STATE(103), + [sym__definition] = STATE(73), [sym_comment] = STATE(1), - [sym_assignment] = STATE(26), - [aux_sym_source_file_repeat1] = STATE(8), + [sym_assignment] = STATE(65), + [sym_module] = STATE(65), + [sym__old_module] = STATE(75), + [sym__new_module] = STATE(77), + [aux_sym_source_file_repeat1] = STATE(14), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_POUND] = ACTIONS(3), [sym_identifier] = ACTIONS(7), @@ -2408,499 +5652,1656 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { }; static const uint16_t ts_small_parse_table[] = { - [0] = 12, + [0] = 16, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(9), 1, - sym_identifier, + anon_sym_LBRACE, ACTIONS(11), 1, - anon_sym_DASH, - ACTIONS(13), 1, - aux_sym_integer_literal_token1, + sym_identifier, ACTIONS(15), 1, - sym_raw_string_literal, + anon_sym_DASH, ACTIONS(17), 1, - anon_sym_DQUOTE, + aux_sym_integer_literal_token1, ACTIONS(19), 1, - anon_sym_LBRACK, + sym_raw_string_literal, ACTIONS(21), 1, - anon_sym_RBRACK, + anon_sym_DQUOTE, + ACTIONS(23), 1, + anon_sym_select, + ACTIONS(25), 1, + anon_sym_unset, + ACTIONS(27), 1, + anon_sym_LBRACK, STATE(2), 1, sym_comment, - STATE(15), 1, + STATE(18), 1, sym_interpreted_string_literal, - STATE(29), 1, + STATE(111), 1, sym__expr, - STATE(12), 3, + STATE(113), 1, + sym__case_value, + ACTIONS(13), 2, + anon_sym_true, + anon_sym_false, + STATE(21), 6, + sym_boolean_literal, sym_integer_literal, sym__string_literal, + sym_select_expression, sym_list_expression, - [39] = 12, + sym_map_expression, + [55] = 16, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(9), 1, - sym_identifier, + anon_sym_LBRACE, ACTIONS(11), 1, - anon_sym_DASH, - ACTIONS(13), 1, - aux_sym_integer_literal_token1, + sym_identifier, ACTIONS(15), 1, - sym_raw_string_literal, + anon_sym_DASH, ACTIONS(17), 1, - anon_sym_DQUOTE, + aux_sym_integer_literal_token1, ACTIONS(19), 1, - anon_sym_LBRACK, + sym_raw_string_literal, + ACTIONS(21), 1, + anon_sym_DQUOTE, ACTIONS(23), 1, - anon_sym_RBRACK, + anon_sym_select, + ACTIONS(25), 1, + anon_sym_unset, + ACTIONS(27), 1, + anon_sym_LBRACK, STATE(3), 1, sym_comment, - STATE(15), 1, + STATE(18), 1, sym_interpreted_string_literal, - STATE(29), 1, + STATE(111), 1, sym__expr, - STATE(12), 3, + STATE(112), 1, + sym__case_value, + ACTIONS(13), 2, + anon_sym_true, + anon_sym_false, + STATE(21), 6, + sym_boolean_literal, sym_integer_literal, sym__string_literal, + sym_select_expression, sym_list_expression, - [78] = 12, + sym_map_expression, + [110] = 15, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(9), 1, - sym_identifier, + anon_sym_LBRACE, ACTIONS(11), 1, - anon_sym_DASH, - ACTIONS(13), 1, - aux_sym_integer_literal_token1, + sym_identifier, ACTIONS(15), 1, - sym_raw_string_literal, + anon_sym_DASH, ACTIONS(17), 1, - anon_sym_DQUOTE, + aux_sym_integer_literal_token1, ACTIONS(19), 1, + sym_raw_string_literal, + ACTIONS(21), 1, + anon_sym_DQUOTE, + ACTIONS(23), 1, + anon_sym_select, + ACTIONS(27), 1, anon_sym_LBRACK, - ACTIONS(25), 1, + ACTIONS(29), 1, anon_sym_RBRACK, STATE(4), 1, sym_comment, - STATE(15), 1, + STATE(18), 1, sym_interpreted_string_literal, - STATE(22), 1, + STATE(52), 1, sym__expr, - STATE(12), 3, + ACTIONS(13), 2, + anon_sym_true, + anon_sym_false, + STATE(21), 6, + sym_boolean_literal, sym_integer_literal, sym__string_literal, + sym_select_expression, sym_list_expression, - [117] = 11, + sym_map_expression, + [162] = 15, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(9), 1, - sym_identifier, + anon_sym_LBRACE, ACTIONS(11), 1, - anon_sym_DASH, - ACTIONS(13), 1, - aux_sym_integer_literal_token1, + sym_identifier, ACTIONS(15), 1, - sym_raw_string_literal, + anon_sym_DASH, ACTIONS(17), 1, - anon_sym_DQUOTE, + aux_sym_integer_literal_token1, ACTIONS(19), 1, + sym_raw_string_literal, + ACTIONS(21), 1, + anon_sym_DQUOTE, + ACTIONS(23), 1, + anon_sym_select, + ACTIONS(27), 1, anon_sym_LBRACK, + ACTIONS(31), 1, + anon_sym_RBRACK, STATE(5), 1, sym_comment, - STATE(15), 1, + STATE(18), 1, sym_interpreted_string_literal, - STATE(28), 1, + STATE(78), 1, sym__expr, - STATE(12), 3, + ACTIONS(13), 2, + anon_sym_true, + anon_sym_false, + STATE(21), 6, + sym_boolean_literal, sym_integer_literal, sym__string_literal, + sym_select_expression, sym_list_expression, - [153] = 11, + sym_map_expression, + [214] = 15, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(9), 1, - sym_identifier, + anon_sym_LBRACE, ACTIONS(11), 1, - anon_sym_DASH, - ACTIONS(13), 1, - aux_sym_integer_literal_token1, + sym_identifier, ACTIONS(15), 1, - sym_raw_string_literal, + anon_sym_DASH, ACTIONS(17), 1, - anon_sym_DQUOTE, + aux_sym_integer_literal_token1, ACTIONS(19), 1, + sym_raw_string_literal, + ACTIONS(21), 1, + anon_sym_DQUOTE, + ACTIONS(23), 1, + anon_sym_select, + ACTIONS(27), 1, anon_sym_LBRACK, + ACTIONS(33), 1, + anon_sym_RBRACK, STATE(6), 1, sym_comment, - STATE(15), 1, + STATE(18), 1, sym_interpreted_string_literal, - STATE(29), 1, + STATE(78), 1, sym__expr, - STATE(12), 3, + ACTIONS(13), 2, + anon_sym_true, + anon_sym_false, + STATE(21), 6, + sym_boolean_literal, sym_integer_literal, sym__string_literal, + sym_select_expression, sym_list_expression, - [189] = 6, + sym_map_expression, + [266] = 14, ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(27), 1, - ts_builtin_sym_end, - ACTIONS(29), 1, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(11), 1, sym_identifier, - STATE(26), 1, - sym_assignment, - STATE(27), 1, - sym__definition, - STATE(7), 2, + ACTIONS(15), 1, + anon_sym_DASH, + ACTIONS(17), 1, + aux_sym_integer_literal_token1, + ACTIONS(19), 1, + sym_raw_string_literal, + ACTIONS(21), 1, + anon_sym_DQUOTE, + ACTIONS(23), 1, + anon_sym_select, + ACTIONS(27), 1, + anon_sym_LBRACK, + STATE(7), 1, sym_comment, - aux_sym_source_file_repeat1, - [209] = 7, + STATE(18), 1, + sym_interpreted_string_literal, + STATE(74), 1, + sym__expr, + ACTIONS(13), 2, + anon_sym_true, + anon_sym_false, + STATE(21), 6, + sym_boolean_literal, + sym_integer_literal, + sym__string_literal, + sym_select_expression, + sym_list_expression, + sym_map_expression, + [315] = 14, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(15), 1, + anon_sym_DASH, + ACTIONS(17), 1, + aux_sym_integer_literal_token1, + ACTIONS(19), 1, + sym_raw_string_literal, + ACTIONS(21), 1, + anon_sym_DQUOTE, + ACTIONS(23), 1, + anon_sym_select, + ACTIONS(27), 1, + anon_sym_LBRACK, + STATE(8), 1, + sym_comment, + STATE(18), 1, + sym_interpreted_string_literal, + STATE(81), 1, + sym__expr, + ACTIONS(13), 2, + anon_sym_true, + anon_sym_false, + STATE(21), 6, + sym_boolean_literal, + sym_integer_literal, + sym__string_literal, + sym_select_expression, + sym_list_expression, + sym_map_expression, + [364] = 14, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(15), 1, + anon_sym_DASH, + ACTIONS(17), 1, + aux_sym_integer_literal_token1, + ACTIONS(19), 1, + sym_raw_string_literal, + ACTIONS(21), 1, + anon_sym_DQUOTE, + ACTIONS(23), 1, + anon_sym_select, + ACTIONS(27), 1, + anon_sym_LBRACK, + STATE(9), 1, + sym_comment, + STATE(18), 1, + sym_interpreted_string_literal, + STATE(70), 1, + sym__expr, + ACTIONS(13), 2, + anon_sym_true, + anon_sym_false, + STATE(21), 6, + sym_boolean_literal, + sym_integer_literal, + sym__string_literal, + sym_select_expression, + sym_list_expression, + sym_map_expression, + [413] = 14, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(11), 1, + sym_identifier, + ACTIONS(15), 1, + anon_sym_DASH, + ACTIONS(17), 1, + aux_sym_integer_literal_token1, + ACTIONS(19), 1, + sym_raw_string_literal, + ACTIONS(21), 1, + anon_sym_DQUOTE, + ACTIONS(23), 1, + anon_sym_select, + ACTIONS(27), 1, + anon_sym_LBRACK, + STATE(10), 1, + sym_comment, + STATE(18), 1, + sym_interpreted_string_literal, + STATE(78), 1, + sym__expr, + ACTIONS(13), 2, + anon_sym_true, + anon_sym_false, + STATE(21), 6, + sym_boolean_literal, + sym_integer_literal, + sym__string_literal, + sym_select_expression, + sym_list_expression, + sym_map_expression, + [462] = 11, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(19), 1, + sym_raw_string_literal, + ACTIONS(21), 1, + anon_sym_DQUOTE, + ACTIONS(35), 1, + anon_sym_RBRACE, + ACTIONS(37), 1, + anon_sym_default, + STATE(11), 1, + sym_comment, + STATE(13), 1, + aux_sym_select_cases_repeat1, + STATE(18), 1, + sym_interpreted_string_literal, + STATE(97), 1, + sym__string_literal, + STATE(98), 1, + sym_select_case, + STATE(108), 1, + sym_default_case, + [496] = 11, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(19), 1, + sym_raw_string_literal, + ACTIONS(21), 1, + anon_sym_DQUOTE, + ACTIONS(37), 1, + anon_sym_default, + ACTIONS(39), 1, + anon_sym_RBRACE, + STATE(11), 1, + aux_sym_select_cases_repeat1, + STATE(12), 1, + sym_comment, + STATE(18), 1, + sym_interpreted_string_literal, + STATE(97), 1, + sym__string_literal, + STATE(98), 1, + sym_select_case, + STATE(99), 1, + sym_default_case, + [530] = 8, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(43), 1, + sym_raw_string_literal, + ACTIONS(46), 1, + anon_sym_DQUOTE, + STATE(18), 1, + sym_interpreted_string_literal, + STATE(97), 1, + sym__string_literal, + STATE(98), 1, + sym_select_case, + ACTIONS(41), 2, + anon_sym_RBRACE, + anon_sym_default, + STATE(13), 2, + sym_comment, + aux_sym_select_cases_repeat1, + [557] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(7), 1, sym_identifier, - ACTIONS(32), 1, + ACTIONS(49), 1, ts_builtin_sym_end, - STATE(7), 1, - aux_sym_source_file_repeat1, - STATE(8), 1, - sym_comment, - STATE(26), 1, - sym_assignment, - STATE(27), 1, - sym__definition, - [231] = 3, - ACTIONS(3), 1, - anon_sym_POUND, - STATE(9), 1, - sym_comment, - ACTIONS(34), 4, - ts_builtin_sym_end, - sym_identifier, - anon_sym_COMMA, - anon_sym_RBRACK, - [244] = 3, - ACTIONS(3), 1, - anon_sym_POUND, - STATE(10), 1, - sym_comment, - ACTIONS(36), 4, - ts_builtin_sym_end, - sym_identifier, - anon_sym_COMMA, - anon_sym_RBRACK, - [257] = 3, - ACTIONS(3), 1, - anon_sym_POUND, - STATE(11), 1, - sym_comment, - ACTIONS(38), 4, - ts_builtin_sym_end, - sym_identifier, - anon_sym_COMMA, - anon_sym_RBRACK, - [270] = 3, - ACTIONS(3), 1, - anon_sym_POUND, - STATE(12), 1, - sym_comment, - ACTIONS(40), 4, - ts_builtin_sym_end, - sym_identifier, - anon_sym_COMMA, - anon_sym_RBRACK, - [283] = 3, - ACTIONS(3), 1, - anon_sym_POUND, - STATE(13), 1, - sym_comment, - ACTIONS(42), 4, - ts_builtin_sym_end, - sym_identifier, - anon_sym_COMMA, - anon_sym_RBRACK, - [296] = 3, - ACTIONS(3), 1, - anon_sym_POUND, STATE(14), 1, sym_comment, - ACTIONS(44), 4, - ts_builtin_sym_end, - sym_identifier, - anon_sym_COMMA, - anon_sym_RBRACK, - [309] = 3, + STATE(15), 1, + aux_sym_source_file_repeat1, + STATE(73), 1, + sym__definition, + STATE(75), 1, + sym__old_module, + STATE(77), 1, + sym__new_module, + STATE(65), 2, + sym_assignment, + sym_module, + [586] = 8, ACTIONS(3), 1, anon_sym_POUND, - STATE(15), 1, - sym_comment, - ACTIONS(46), 4, + ACTIONS(51), 1, ts_builtin_sym_end, + ACTIONS(53), 1, sym_identifier, - anon_sym_COMMA, - anon_sym_RBRACK, - [322] = 6, - ACTIONS(48), 1, + STATE(73), 1, + sym__definition, + STATE(75), 1, + sym__old_module, + STATE(77), 1, + sym__new_module, + STATE(15), 2, + sym_comment, + aux_sym_source_file_repeat1, + STATE(65), 2, + sym_assignment, + sym_module, + [613] = 3, + ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(50), 1, - aux_sym_interpreted_string_literal_token1, - ACTIONS(52), 1, - anon_sym_DQUOTE2, - ACTIONS(54), 1, - sym_escape_sequence, STATE(16), 1, sym_comment, - STATE(21), 1, - aux_sym_interpreted_string_literal_repeat1, - [341] = 3, + ACTIONS(56), 7, + ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, + anon_sym_COLON, + anon_sym_RBRACK, + [629] = 3, ACTIONS(3), 1, anon_sym_POUND, STATE(17), 1, sym_comment, - ACTIONS(56), 4, + ACTIONS(58), 7, ts_builtin_sym_end, - sym_identifier, anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, + anon_sym_COLON, anon_sym_RBRACK, - [354] = 3, + [645] = 3, ACTIONS(3), 1, anon_sym_POUND, STATE(18), 1, sym_comment, - ACTIONS(58), 4, + ACTIONS(60), 7, ts_builtin_sym_end, - sym_identifier, anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, + anon_sym_COLON, anon_sym_RBRACK, - [367] = 5, - ACTIONS(48), 1, - anon_sym_POUND, - ACTIONS(60), 1, - aux_sym_interpreted_string_literal_token1, - ACTIONS(63), 1, - anon_sym_DQUOTE2, - ACTIONS(65), 1, - sym_escape_sequence, - STATE(19), 2, - sym_comment, - aux_sym_interpreted_string_literal_repeat1, - [384] = 3, + [661] = 3, ACTIONS(3), 1, anon_sym_POUND, + STATE(19), 1, + sym_comment, + ACTIONS(62), 6, + ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, + anon_sym_RBRACK, + [676] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(66), 1, + anon_sym_soong_config_variable, STATE(20), 1, sym_comment, - ACTIONS(68), 4, - ts_builtin_sym_end, - sym_identifier, - anon_sym_COMMA, - anon_sym_RBRACK, - [397] = 6, - ACTIONS(48), 1, + STATE(104), 2, + sym_select_value, + sym_soong_config_variable, + ACTIONS(64), 3, + anon_sym_product_variable, + anon_sym_release_variable, + anon_sym_variant, + [695] = 3, + ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(50), 1, - aux_sym_interpreted_string_literal_token1, - ACTIONS(54), 1, - sym_escape_sequence, - ACTIONS(70), 1, - anon_sym_DQUOTE2, - STATE(19), 1, - aux_sym_interpreted_string_literal_repeat1, STATE(21), 1, sym_comment, - [416] = 5, + ACTIONS(68), 6, + ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, + anon_sym_RBRACK, + [710] = 3, ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(72), 1, - anon_sym_COMMA, - ACTIONS(74), 1, - anon_sym_RBRACK, STATE(22), 1, sym_comment, - STATE(24), 1, - aux_sym_list_expression_repeat1, - [432] = 4, - ACTIONS(48), 1, + ACTIONS(70), 6, + ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, + anon_sym_RBRACK, + [725] = 3, + ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(76), 1, - aux_sym_interpreted_string_literal_token1, STATE(23), 1, sym_comment, - ACTIONS(78), 2, - anon_sym_DQUOTE2, - sym_escape_sequence, - [446] = 5, + ACTIONS(72), 6, + ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, + anon_sym_RBRACK, + [740] = 3, ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(23), 1, - anon_sym_RBRACK, - ACTIONS(80), 1, - anon_sym_COMMA, STATE(24), 1, sym_comment, - STATE(25), 1, - aux_sym_list_expression_repeat1, - [462] = 4, + ACTIONS(74), 6, + ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, + anon_sym_RBRACK, + [755] = 3, ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(82), 1, - anon_sym_COMMA, - ACTIONS(85), 1, - anon_sym_RBRACK, - STATE(25), 2, + STATE(25), 1, sym_comment, - aux_sym_list_expression_repeat1, - [476] = 3, + ACTIONS(76), 6, + ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, + anon_sym_RBRACK, + [770] = 3, ACTIONS(3), 1, anon_sym_POUND, STATE(26), 1, sym_comment, - ACTIONS(87), 2, + ACTIONS(78), 6, ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, sym_identifier, - [487] = 3, + anon_sym_RBRACK, + [785] = 3, ACTIONS(3), 1, anon_sym_POUND, STATE(27), 1, sym_comment, - ACTIONS(89), 2, + ACTIONS(80), 6, ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, sym_identifier, - [498] = 3, + anon_sym_RBRACK, + [800] = 3, ACTIONS(3), 1, anon_sym_POUND, STATE(28), 1, sym_comment, - ACTIONS(91), 2, + ACTIONS(82), 6, ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, sym_identifier, - [509] = 3, + anon_sym_RBRACK, + [815] = 3, ACTIONS(3), 1, anon_sym_POUND, STATE(29), 1, sym_comment, - ACTIONS(85), 2, + ACTIONS(84), 6, + ts_builtin_sym_end, anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, anon_sym_RBRACK, - [520] = 3, + [830] = 3, ACTIONS(3), 1, anon_sym_POUND, STATE(30), 1, sym_comment, - ACTIONS(93), 2, - anon_sym_EQ, - anon_sym_PLUS_EQ, - [531] = 3, - ACTIONS(48), 1, + ACTIONS(86), 6, + ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, + anon_sym_RBRACK, + [845] = 3, + ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(95), 1, - aux_sym_comment_token1, STATE(31), 1, sym_comment, - [541] = 3, + ACTIONS(88), 6, + ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, + anon_sym_RBRACK, + [860] = 3, ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(97), 1, - aux_sym_integer_literal_token1, STATE(32), 1, sym_comment, - [551] = 3, + ACTIONS(90), 6, + ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, + anon_sym_RBRACK, + [875] = 3, ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(99), 1, - ts_builtin_sym_end, STATE(33), 1, sym_comment, - [561] = 1, - ACTIONS(101), 1, + ACTIONS(92), 6, + ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, + anon_sym_RBRACK, + [890] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(34), 1, + sym_comment, + ACTIONS(94), 6, + ts_builtin_sym_end, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_RPAREN, + sym_identifier, + anon_sym_RBRACK, + [905] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(19), 1, + sym_raw_string_literal, + ACTIONS(21), 1, + anon_sym_DQUOTE, + STATE(18), 1, + sym_interpreted_string_literal, + STATE(35), 1, + sym_comment, + STATE(101), 1, + sym__string_literal, + [924] = 6, + ACTIONS(96), 1, + anon_sym_POUND, + ACTIONS(98), 1, + aux_sym_interpreted_string_literal_token1, + ACTIONS(100), 1, + anon_sym_DQUOTE2, + ACTIONS(102), 1, + sym_escape_sequence, + STATE(36), 1, + sym_comment, + STATE(38), 1, + aux_sym_interpreted_string_literal_repeat1, + [943] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(106), 1, + anon_sym_LBRACE, + ACTIONS(108), 1, + anon_sym_LPAREN, + STATE(37), 1, + sym_comment, + ACTIONS(104), 2, + anon_sym_EQ, + anon_sym_PLUS_EQ, + [960] = 6, + ACTIONS(96), 1, + anon_sym_POUND, + ACTIONS(98), 1, + aux_sym_interpreted_string_literal_token1, + ACTIONS(102), 1, + sym_escape_sequence, + ACTIONS(110), 1, + anon_sym_DQUOTE2, + STATE(38), 1, + sym_comment, + STATE(41), 1, + aux_sym_interpreted_string_literal_repeat1, + [979] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(39), 1, + sym_comment, + ACTIONS(41), 4, + anon_sym_RBRACE, + sym_raw_string_literal, + anon_sym_DQUOTE, + anon_sym_default, + [992] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(19), 1, + sym_raw_string_literal, + ACTIONS(21), 1, + anon_sym_DQUOTE, + STATE(18), 1, + sym_interpreted_string_literal, + STATE(40), 1, + sym_comment, + STATE(102), 1, + sym__string_literal, + [1011] = 5, + ACTIONS(96), 1, + anon_sym_POUND, + ACTIONS(112), 1, + aux_sym_interpreted_string_literal_token1, + ACTIONS(115), 1, + anon_sym_DQUOTE2, + ACTIONS(117), 1, + sym_escape_sequence, + STATE(41), 2, + sym_comment, + aux_sym_interpreted_string_literal_repeat1, + [1028] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(19), 1, + sym_raw_string_literal, + ACTIONS(21), 1, + anon_sym_DQUOTE, + STATE(18), 1, + sym_interpreted_string_literal, + STATE(42), 1, + sym_comment, + STATE(107), 1, + sym__string_literal, + [1047] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(120), 1, + anon_sym_COMMA, + ACTIONS(122), 1, + anon_sym_RBRACE, + STATE(43), 1, + sym_comment, + STATE(60), 1, + aux_sym__old_module_repeat1, + [1063] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(124), 1, + anon_sym_RBRACE, + ACTIONS(126), 1, + sym_identifier, + STATE(44), 1, + sym_comment, + STATE(57), 1, + sym__colon_property, + [1079] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(128), 1, + anon_sym_COMMA, + ACTIONS(130), 1, + anon_sym_RBRACE, + STATE(45), 1, + sym_comment, + STATE(60), 1, + aux_sym__old_module_repeat1, + [1095] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(132), 1, + anon_sym_RPAREN, + ACTIONS(134), 1, + sym_identifier, + STATE(46), 1, + sym_comment, + STATE(67), 1, + sym__equal_property, + [1111] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(136), 1, + anon_sym_COMMA, + ACTIONS(138), 1, + anon_sym_RPAREN, + STATE(47), 1, + sym_comment, + STATE(62), 1, + aux_sym__new_module_repeat1, + [1127] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(126), 1, + sym_identifier, + ACTIONS(140), 1, + anon_sym_RBRACE, + STATE(48), 1, + sym_comment, + STATE(68), 1, + sym__colon_property, + [1143] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(126), 1, + sym_identifier, + ACTIONS(142), 1, + anon_sym_RBRACE, + STATE(49), 1, + sym_comment, + STATE(68), 1, + sym__colon_property, + [1159] = 4, + ACTIONS(96), 1, + anon_sym_POUND, + ACTIONS(144), 1, + aux_sym_interpreted_string_literal_token1, + STATE(50), 1, + sym_comment, + ACTIONS(146), 2, + anon_sym_DQUOTE2, + sym_escape_sequence, + [1173] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(148), 1, + anon_sym_COMMA, + ACTIONS(150), 1, + anon_sym_RBRACE, + STATE(43), 1, + aux_sym__old_module_repeat1, + STATE(51), 1, + sym_comment, + [1189] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(152), 1, + anon_sym_COMMA, + ACTIONS(154), 1, + anon_sym_RBRACK, + STATE(52), 1, + sym_comment, + STATE(58), 1, + aux_sym_list_expression_repeat1, + [1205] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(126), 1, + sym_identifier, + ACTIONS(156), 1, + anon_sym_RBRACE, + STATE(51), 1, + sym__colon_property, + STATE(53), 1, + sym_comment, + [1221] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(126), 1, + sym_identifier, + ACTIONS(158), 1, + anon_sym_RBRACE, + STATE(54), 1, + sym_comment, + STATE(68), 1, + sym__colon_property, + [1237] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(160), 1, + anon_sym_COMMA, + ACTIONS(162), 1, + anon_sym_RPAREN, + STATE(47), 1, + aux_sym__new_module_repeat1, + STATE(55), 1, + sym_comment, + [1253] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(134), 1, + sym_identifier, + ACTIONS(164), 1, + anon_sym_RPAREN, + STATE(55), 1, + sym__equal_property, + STATE(56), 1, + sym_comment, + [1269] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(166), 1, + anon_sym_COMMA, + ACTIONS(168), 1, + anon_sym_RBRACE, + STATE(45), 1, + aux_sym__old_module_repeat1, + STATE(57), 1, + sym_comment, + [1285] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(170), 1, + anon_sym_COMMA, + ACTIONS(172), 1, + anon_sym_RBRACK, + STATE(58), 1, + sym_comment, + STATE(63), 1, + aux_sym_list_expression_repeat1, + [1301] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(126), 1, + sym_identifier, + ACTIONS(174), 1, + anon_sym_RBRACE, + STATE(59), 1, + sym_comment, + STATE(68), 1, + sym__colon_property, + [1317] = 4, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(176), 1, + anon_sym_COMMA, + ACTIONS(179), 1, + anon_sym_RBRACE, + STATE(60), 2, + sym_comment, + aux_sym__old_module_repeat1, + [1331] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(134), 1, + sym_identifier, + ACTIONS(181), 1, + anon_sym_RPAREN, + STATE(61), 1, + sym_comment, + STATE(67), 1, + sym__equal_property, + [1347] = 4, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(183), 1, + anon_sym_COMMA, + ACTIONS(186), 1, + anon_sym_RPAREN, + STATE(62), 2, + sym_comment, + aux_sym__new_module_repeat1, + [1361] = 4, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(188), 1, + anon_sym_COMMA, + ACTIONS(191), 1, + anon_sym_RBRACK, + STATE(63), 2, + sym_comment, + aux_sym_list_expression_repeat1, + [1375] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(64), 1, + sym_comment, + ACTIONS(193), 2, + ts_builtin_sym_end, + sym_identifier, + [1386] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(65), 1, + sym_comment, + ACTIONS(195), 2, + ts_builtin_sym_end, + sym_identifier, + [1397] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(66), 1, + sym_comment, + ACTIONS(197), 2, + ts_builtin_sym_end, + sym_identifier, + [1408] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(67), 1, + sym_comment, + ACTIONS(199), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [1419] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(68), 1, + sym_comment, + ACTIONS(201), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [1430] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(69), 1, + sym_comment, + ACTIONS(203), 2, + ts_builtin_sym_end, + sym_identifier, + [1441] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(70), 1, + sym_comment, + ACTIONS(205), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [1452] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(71), 1, + sym_comment, + ACTIONS(207), 2, + ts_builtin_sym_end, + sym_identifier, + [1463] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(72), 1, + sym_comment, + ACTIONS(209), 2, + ts_builtin_sym_end, + sym_identifier, + [1474] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(73), 1, + sym_comment, + ACTIONS(211), 2, + ts_builtin_sym_end, + sym_identifier, + [1485] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(74), 1, + sym_comment, + ACTIONS(213), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [1496] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(75), 1, + sym_comment, + ACTIONS(215), 2, + ts_builtin_sym_end, + sym_identifier, + [1507] = 4, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(217), 1, + anon_sym_LBRACE, + STATE(76), 1, + sym_comment, + STATE(90), 1, + sym_select_cases, + [1520] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(77), 1, + sym_comment, + ACTIONS(219), 2, + ts_builtin_sym_end, + sym_identifier, + [1531] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(78), 1, + sym_comment, + ACTIONS(221), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [1542] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(79), 1, + sym_comment, + ACTIONS(223), 2, + ts_builtin_sym_end, + sym_identifier, + [1553] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(80), 1, + sym_comment, + ACTIONS(225), 2, + ts_builtin_sym_end, + sym_identifier, + [1564] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(81), 1, + sym_comment, + ACTIONS(227), 2, + ts_builtin_sym_end, + sym_identifier, + [1575] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(82), 1, + sym_comment, + ACTIONS(229), 2, + ts_builtin_sym_end, + sym_identifier, + [1586] = 4, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(126), 1, + sym_identifier, + STATE(68), 1, + sym__colon_property, + STATE(83), 1, + sym_comment, + [1599] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(84), 1, + sym_comment, + ACTIONS(231), 2, + ts_builtin_sym_end, + sym_identifier, + [1610] = 4, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(134), 1, + sym_identifier, + STATE(67), 1, + sym__equal_property, + STATE(85), 1, + sym_comment, + [1623] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + STATE(86), 1, + sym_comment, + ACTIONS(233), 2, + ts_builtin_sym_end, + sym_identifier, + [1634] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(235), 1, + anon_sym_LPAREN, + STATE(87), 1, + sym_comment, + [1644] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(237), 1, + anon_sym_RPAREN, + STATE(88), 1, + sym_comment, + [1654] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(239), 1, + anon_sym_COLON, + STATE(89), 1, + sym_comment, + [1664] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(241), 1, + anon_sym_RPAREN, + STATE(90), 1, + sym_comment, + [1674] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(243), 1, + anon_sym_EQ, + STATE(91), 1, + sym_comment, + [1684] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(245), 1, + anon_sym_LPAREN, + STATE(92), 1, + sym_comment, + [1694] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(247), 1, + anon_sym_COMMA, + STATE(93), 1, + sym_comment, + [1704] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(249), 1, + aux_sym_integer_literal_token1, + STATE(94), 1, + sym_comment, + [1714] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(251), 1, + anon_sym_RPAREN, + STATE(95), 1, + sym_comment, + [1724] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(253), 1, + anon_sym_COLON, + STATE(96), 1, + sym_comment, + [1734] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(255), 1, + anon_sym_COLON, + STATE(97), 1, + sym_comment, + [1744] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(257), 1, + anon_sym_COMMA, + STATE(98), 1, + sym_comment, + [1754] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(259), 1, + anon_sym_COMMA, + STATE(99), 1, + sym_comment, + [1764] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(261), 1, + anon_sym_RPAREN, + STATE(100), 1, + sym_comment, + [1774] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(263), 1, + anon_sym_COMMA, + STATE(101), 1, + sym_comment, + [1784] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(265), 1, + anon_sym_RPAREN, + STATE(102), 1, + sym_comment, + [1794] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(267), 1, + ts_builtin_sym_end, + STATE(103), 1, + sym_comment, + [1804] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(269), 1, + anon_sym_COMMA, + STATE(104), 1, + sym_comment, + [1814] = 3, + ACTIONS(96), 1, + anon_sym_POUND, + ACTIONS(271), 1, + aux_sym_comment_token1, + STATE(105), 1, + sym_comment, + [1824] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(273), 1, + anon_sym_RBRACE, + STATE(106), 1, + sym_comment, + [1834] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(275), 1, + anon_sym_RPAREN, + STATE(107), 1, + sym_comment, + [1844] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(277), 1, + anon_sym_COMMA, + STATE(108), 1, + sym_comment, + [1854] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(279), 1, + anon_sym_LPAREN, + STATE(109), 1, + sym_comment, + [1864] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(281), 1, + anon_sym_COMMA, + STATE(110), 1, + sym_comment, + [1874] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(283), 1, + anon_sym_COMMA, + STATE(111), 1, + sym_comment, + [1884] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(285), 1, + anon_sym_COMMA, + STATE(112), 1, + sym_comment, + [1894] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(287), 1, + anon_sym_COMMA, + STATE(113), 1, + sym_comment, + [1904] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(289), 1, + anon_sym_RPAREN, + STATE(114), 1, + sym_comment, + [1914] = 3, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(291), 1, + anon_sym_RBRACE, + STATE(115), 1, + sym_comment, + [1924] = 1, + ACTIONS(293), 1, ts_builtin_sym_end, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, - [SMALL_STATE(3)] = 39, - [SMALL_STATE(4)] = 78, - [SMALL_STATE(5)] = 117, - [SMALL_STATE(6)] = 153, - [SMALL_STATE(7)] = 189, - [SMALL_STATE(8)] = 209, - [SMALL_STATE(9)] = 231, - [SMALL_STATE(10)] = 244, - [SMALL_STATE(11)] = 257, - [SMALL_STATE(12)] = 270, - [SMALL_STATE(13)] = 283, - [SMALL_STATE(14)] = 296, - [SMALL_STATE(15)] = 309, - [SMALL_STATE(16)] = 322, - [SMALL_STATE(17)] = 341, - [SMALL_STATE(18)] = 354, - [SMALL_STATE(19)] = 367, - [SMALL_STATE(20)] = 384, - [SMALL_STATE(21)] = 397, - [SMALL_STATE(22)] = 416, - [SMALL_STATE(23)] = 432, - [SMALL_STATE(24)] = 446, - [SMALL_STATE(25)] = 462, - [SMALL_STATE(26)] = 476, - [SMALL_STATE(27)] = 487, - [SMALL_STATE(28)] = 498, - [SMALL_STATE(29)] = 509, - [SMALL_STATE(30)] = 520, - [SMALL_STATE(31)] = 531, - [SMALL_STATE(32)] = 541, - [SMALL_STATE(33)] = 551, - [SMALL_STATE(34)] = 561, + [SMALL_STATE(3)] = 55, + [SMALL_STATE(4)] = 110, + [SMALL_STATE(5)] = 162, + [SMALL_STATE(6)] = 214, + [SMALL_STATE(7)] = 266, + [SMALL_STATE(8)] = 315, + [SMALL_STATE(9)] = 364, + [SMALL_STATE(10)] = 413, + [SMALL_STATE(11)] = 462, + [SMALL_STATE(12)] = 496, + [SMALL_STATE(13)] = 530, + [SMALL_STATE(14)] = 557, + [SMALL_STATE(15)] = 586, + [SMALL_STATE(16)] = 613, + [SMALL_STATE(17)] = 629, + [SMALL_STATE(18)] = 645, + [SMALL_STATE(19)] = 661, + [SMALL_STATE(20)] = 676, + [SMALL_STATE(21)] = 695, + [SMALL_STATE(22)] = 710, + [SMALL_STATE(23)] = 725, + [SMALL_STATE(24)] = 740, + [SMALL_STATE(25)] = 755, + [SMALL_STATE(26)] = 770, + [SMALL_STATE(27)] = 785, + [SMALL_STATE(28)] = 800, + [SMALL_STATE(29)] = 815, + [SMALL_STATE(30)] = 830, + [SMALL_STATE(31)] = 845, + [SMALL_STATE(32)] = 860, + [SMALL_STATE(33)] = 875, + [SMALL_STATE(34)] = 890, + [SMALL_STATE(35)] = 905, + [SMALL_STATE(36)] = 924, + [SMALL_STATE(37)] = 943, + [SMALL_STATE(38)] = 960, + [SMALL_STATE(39)] = 979, + [SMALL_STATE(40)] = 992, + [SMALL_STATE(41)] = 1011, + [SMALL_STATE(42)] = 1028, + [SMALL_STATE(43)] = 1047, + [SMALL_STATE(44)] = 1063, + [SMALL_STATE(45)] = 1079, + [SMALL_STATE(46)] = 1095, + [SMALL_STATE(47)] = 1111, + [SMALL_STATE(48)] = 1127, + [SMALL_STATE(49)] = 1143, + [SMALL_STATE(50)] = 1159, + [SMALL_STATE(51)] = 1173, + [SMALL_STATE(52)] = 1189, + [SMALL_STATE(53)] = 1205, + [SMALL_STATE(54)] = 1221, + [SMALL_STATE(55)] = 1237, + [SMALL_STATE(56)] = 1253, + [SMALL_STATE(57)] = 1269, + [SMALL_STATE(58)] = 1285, + [SMALL_STATE(59)] = 1301, + [SMALL_STATE(60)] = 1317, + [SMALL_STATE(61)] = 1331, + [SMALL_STATE(62)] = 1347, + [SMALL_STATE(63)] = 1361, + [SMALL_STATE(64)] = 1375, + [SMALL_STATE(65)] = 1386, + [SMALL_STATE(66)] = 1397, + [SMALL_STATE(67)] = 1408, + [SMALL_STATE(68)] = 1419, + [SMALL_STATE(69)] = 1430, + [SMALL_STATE(70)] = 1441, + [SMALL_STATE(71)] = 1452, + [SMALL_STATE(72)] = 1463, + [SMALL_STATE(73)] = 1474, + [SMALL_STATE(74)] = 1485, + [SMALL_STATE(75)] = 1496, + [SMALL_STATE(76)] = 1507, + [SMALL_STATE(77)] = 1520, + [SMALL_STATE(78)] = 1531, + [SMALL_STATE(79)] = 1542, + [SMALL_STATE(80)] = 1553, + [SMALL_STATE(81)] = 1564, + [SMALL_STATE(82)] = 1575, + [SMALL_STATE(83)] = 1586, + [SMALL_STATE(84)] = 1599, + [SMALL_STATE(85)] = 1610, + [SMALL_STATE(86)] = 1623, + [SMALL_STATE(87)] = 1634, + [SMALL_STATE(88)] = 1644, + [SMALL_STATE(89)] = 1654, + [SMALL_STATE(90)] = 1664, + [SMALL_STATE(91)] = 1674, + [SMALL_STATE(92)] = 1684, + [SMALL_STATE(93)] = 1694, + [SMALL_STATE(94)] = 1704, + [SMALL_STATE(95)] = 1714, + [SMALL_STATE(96)] = 1724, + [SMALL_STATE(97)] = 1734, + [SMALL_STATE(98)] = 1744, + [SMALL_STATE(99)] = 1754, + [SMALL_STATE(100)] = 1764, + [SMALL_STATE(101)] = 1774, + [SMALL_STATE(102)] = 1784, + [SMALL_STATE(103)] = 1794, + [SMALL_STATE(104)] = 1804, + [SMALL_STATE(105)] = 1814, + [SMALL_STATE(106)] = 1824, + [SMALL_STATE(107)] = 1834, + [SMALL_STATE(108)] = 1844, + [SMALL_STATE(109)] = 1854, + [SMALL_STATE(110)] = 1864, + [SMALL_STATE(111)] = 1874, + [SMALL_STATE(112)] = 1884, + [SMALL_STATE(113)] = 1894, + [SMALL_STATE(114)] = 1904, + [SMALL_STATE(115)] = 1914, + [SMALL_STATE(116)] = 1924, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), - [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [27] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [29] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(30), - [32] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [34] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpreted_string_literal, 3), - [36] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 2), - [38] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 5), - [40] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1), - [42] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 4), - [44] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_integer_literal, 1), - [46] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__string_literal, 1), - [48] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), - [50] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), - [52] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [54] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [56] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 3), - [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_integer_literal, 2), - [60] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_interpreted_string_literal_repeat1, 2), SHIFT_REPEAT(23), - [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_interpreted_string_literal_repeat1, 2), - [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_interpreted_string_literal_repeat1, 2), SHIFT_REPEAT(23), - [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpreted_string_literal, 2), - [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_interpreted_string_literal_repeat1, 1), - [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_interpreted_string_literal_repeat1, 1), - [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [82] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_expression_repeat1, 2), SHIFT_REPEAT(6), - [85] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_expression_repeat1, 2), - [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__definition, 1), - [89] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 1), - [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, .production_id = 1), - [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), - [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [99] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [41] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_select_cases_repeat1, 2), + [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_select_cases_repeat1, 2), SHIFT_REPEAT(18), + [46] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_select_cases_repeat1, 2), SHIFT_REPEAT(36), + [49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [53] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(37), + [56] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpreted_string_literal, 3), + [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpreted_string_literal, 2), + [60] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__string_literal, 1), + [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_integer_literal, 2), + [64] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [66] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_literal, 1), + [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_integer_literal, 1), + [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_expression, 4, .production_id = 7), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 5, .production_id = 14), + [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_expression, 5, .production_id = 13), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 3, .production_id = 8), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_expression, 4, .production_id = 13), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 4, .production_id = 14), + [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_select_expression, 6), + [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_expression, 2), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_expression, 3, .production_id = 7), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 4, .production_id = 8), + [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_expression, 2), + [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105), + [98] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), + [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [112] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_interpreted_string_literal_repeat1, 2), SHIFT_REPEAT(50), + [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_interpreted_string_literal_repeat1, 2), + [117] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_interpreted_string_literal_repeat1, 2), SHIFT_REPEAT(50), + [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_interpreted_string_literal_repeat1, 1), + [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_interpreted_string_literal_repeat1, 1), + [148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [176] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__old_module_repeat1, 2, .production_id = 11), SHIFT_REPEAT(83), + [179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__old_module_repeat1, 2, .production_id = 11), + [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [183] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__new_module_repeat1, 2, .production_id = 11), SHIFT_REPEAT(85), + [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__new_module_repeat1, 2, .production_id = 11), + [188] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_expression_repeat1, 2, .production_id = 15), SHIFT_REPEAT(10), + [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_expression_repeat1, 2, .production_id = 15), + [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__new_module, 3), + [195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__definition, 1), + [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__new_module, 5, .production_id = 6), + [199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__new_module_repeat1, 2, .production_id = 7), + [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__old_module_repeat1, 2, .production_id = 7), + [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__new_module, 5, .production_id = 12), + [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__colon_property, 3, .production_id = 9), + [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__old_module, 5, .production_id = 10), + [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__old_module, 5, .production_id = 5), + [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 1), + [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__equal_property, 3, .production_id = 9), + [215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 1, .production_id = 1), + [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 1, .production_id = 2), + [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_expression_repeat1, 2, .production_id = 8), + [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__new_module, 4, .production_id = 6), + [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__old_module, 4, .production_id = 5), + [227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, .production_id = 3), + [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__old_module, 6, .production_id = 10), + [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__new_module, 6, .production_id = 12), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__old_module, 3, .production_id = 4), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_select_cases, 3), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_select_value, 4, .production_id = 16), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_select_cases, 2), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_select_cases, 5), + [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [267] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [271] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_soong_config_variable, 6, .production_id = 17), + [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__case_value, 1), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_default_case, 3, .production_id = 18), + [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_select_case, 3, .production_id = 18), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_select_cases, 4), + [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2), }; #ifdef __cplusplus diff --git a/test/corpus/expressions.txt b/test/corpus/expressions.txt index a3270a7..03682d9 100644 --- a/test/corpus/expressions.txt +++ b/test/corpus/expressions.txt @@ -1,3 +1,37 @@ +================================================================================ +Boolean +================================================================================ + +foo = false +foo = true + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (boolean_literal)) + (assignment + (identifier) + (boolean_literal))) + +================================================================================ +Boolean (identifier/literal) +================================================================================ + +true = false +false = true + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (boolean_literal)) + (assignment + (identifier) + (boolean_literal))) + ================================================================================ Integer ================================================================================ @@ -186,3 +220,127 @@ foo = [ (identifier) (list_expression (ERROR)))) + +================================================================================ +Map (empty) +================================================================================ + +foo = {} + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (map_expression))) + +================================================================================ +Map (singleton) +================================================================================ + +foo = {foo:42} + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (map_expression + (property + (identifier) + (integer_literal))))) + +================================================================================ +Map (singleton multiline) +================================================================================ + +foo = { + foo: 42 +} + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (map_expression + (property + (identifier) + (integer_literal))))) + +================================================================================ +Map (singleton trailing comma) +================================================================================ + +foo = { + foo: 42, +} + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (map_expression + (property + (identifier) + (integer_literal))))) + +================================================================================ +Map (mixed values) +================================================================================ + +foo = { + answer: 42, + value: "foobar", +} + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (map_expression + (property + (identifier) + (integer_literal)) + (property + (identifier) + (interpreted_string_literal))))) + +================================================================================ +Map (map of map) +================================================================================ + +foo = { + the: {answer: 42}, +} + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (map_expression + (property + (identifier) + (map_expression + (property + (identifier) + (integer_literal))))))) + +================================================================================ +Map (rogue comma) +================================================================================ + +foo = { + , +} + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (map_expression + (ERROR)))) diff --git a/test/corpus/modules.txt b/test/corpus/modules.txt new file mode 100644 index 0000000..73d87bc --- /dev/null +++ b/test/corpus/modules.txt @@ -0,0 +1,123 @@ +================================================================================ +Empty module +================================================================================ + +foo{} + +-------------------------------------------------------------------------------- + +(source_file + (module + (identifier))) + +================================================================================ +Empty module (newlines) +================================================================================ + +foo { +} + +-------------------------------------------------------------------------------- + +(source_file + (module + (identifier))) + +================================================================================ +Single property +================================================================================ + +foo { + bar: 42 +} + +-------------------------------------------------------------------------------- + +(source_file + (module + (identifier) + (property + (identifier) + (integer_literal)))) + +================================================================================ +Single property (trailing comma) +================================================================================ + +foo { + bar: 42, +} + +-------------------------------------------------------------------------------- + +(source_file + (module + (identifier) + (property + (identifier) + (integer_literal)))) + +================================================================================ +Mixed values +================================================================================ + +foo { + active: true, + value: "foo", + answer: 42, +} + +-------------------------------------------------------------------------------- + +(source_file + (module + (identifier) + (property + (identifier) + (boolean_literal)) + (property + (identifier) + (interpreted_string_literal)) + (property + (identifier) + (integer_literal)))) + +================================================================================ +Complex value +================================================================================ + +foo { + some: [ + { + complex: "value", + } + ], +} + +-------------------------------------------------------------------------------- + +(source_file + (module + (identifier) + (property + (identifier) + (list_expression + (map_expression + (property + (identifier) + (interpreted_string_literal))))))) + +================================================================================ +Rogue comma +================================================================================ + +foo { + , +} + +-------------------------------------------------------------------------------- + +(source_file + (module + (identifier) + (ERROR))) diff --git a/test/corpus/select.txt b/test/corpus/select.txt new file mode 100644 index 0000000..2f6ce71 --- /dev/null +++ b/test/corpus/select.txt @@ -0,0 +1,187 @@ +================================================================================ +Select +================================================================================ + +foo = select(release_variable("RELEASE_TEST"), { + "d": "d2", + default: unset, +}) + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (select_expression + (select_value + (selection_type) + (interpreted_string_literal)) + (select_cases + (select_case + (interpreted_string_literal) + (interpreted_string_literal)) + (default_case + (unset)))))) + +================================================================================ +Select (soong config variable) +================================================================================ + +foo = select(soong_config_variable("my_namespace", "my_var"), { + "foo": unset, + "default": "bar", +}) + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (select_expression + (soong_config_variable + (selection_type) + (interpreted_string_literal) + (interpreted_string_literal)) + (select_cases + (select_case + (interpreted_string_literal) + (unset)) + (select_case + (interpreted_string_literal) + (interpreted_string_literal)))))) + +================================================================================ +Select (no default) +================================================================================ + +foo = select(variant("arch"), { + "x86": "my_x86", + "x86_64": "my_x86_64", + "arm": "my_arm", + "arm64": "my_arm64", +}) + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (select_expression + (select_value + (selection_type) + (interpreted_string_literal)) + (select_cases + (select_case + (interpreted_string_literal) + (interpreted_string_literal)) + (select_case + (interpreted_string_literal) + (interpreted_string_literal)) + (select_case + (interpreted_string_literal) + (interpreted_string_literal)) + (select_case + (interpreted_string_literal) + (interpreted_string_literal)))))) + +================================================================================ +Select (no values) +================================================================================ + +foo = select(variant("VARIANT"), {}) + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (select_expression + (select_value + (selection_type) + (interpreted_string_literal)) + (select_cases)))) + +================================================================================ +Select (default in wrong order) +================================================================================ + +foo = select(variant("VARIANT"), { + "x86": "my_x86", + "x86_64": "my_x86_64", + default: unset, + "arm": "my_arm", + "arm64": "my_arm64", +}) + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (select_expression + (select_value + (selection_type) + (interpreted_string_literal)) + (select_cases + (select_case + (interpreted_string_literal) + (interpreted_string_literal)) + (select_case + (interpreted_string_literal) + (interpreted_string_literal)) + (ERROR + (default_case + (unset))) + (select_case + (interpreted_string_literal) + (interpreted_string_literal)) + (select_case + (interpreted_string_literal) + (interpreted_string_literal)))))) + +================================================================================ +Select (no condition) +================================================================================ + +foo = select(variant(), { + "d": unset, + default: "f2", +}) + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (select_expression + (select_value + (selection_type) + (MISSING raw_string_literal)) + (select_cases + (select_case + (interpreted_string_literal) + (unset)) + (default_case + (interpreted_string_literal)))))) + +================================================================================ +Select (invalid type) +================================================================================ + +foo = select(some_unknown_type("CONDITION"), { + "d": "d2", + default: "f2", +}) + +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (ERROR + (identifier) + (identifier) + (interpreted_string_literal) + (interpreted_string_literal)) + (interpreted_string_literal)) + (ERROR))