From 06bbf2ed223b1b0c414c681a21f45b5ae2ea476c Mon Sep 17 00:00:00 2001 From: Amaan Qureshi Date: Sat, 13 May 2023 00:39:48 -0400 Subject: [PATCH] feat: distinguish keys as `@field` --- bindings/node/binding.cc | 24 +- grammar.js | 6 +- queries/highlights.scm | 2 + src/grammar.json | 6 +- src/node-types.json | 21 +- src/parser.c | 952 ++++++++++++++++------------------ test/corpus/main.txt | 50 +- test/highlight/highlight.cpon | 20 +- 8 files changed, 513 insertions(+), 568 deletions(-) diff --git a/bindings/node/binding.cc b/bindings/node/binding.cc index 5af2eed..8251fa2 100644 --- a/bindings/node/binding.cc +++ b/bindings/node/binding.cc @@ -11,18 +11,18 @@ namespace { NAN_METHOD(New) {} void Init(Local exports, Local module) { - Local tpl = Nan::New(New); - tpl->SetClassName(Nan::New("Language").ToLocalChecked()); - tpl->InstanceTemplate()->SetInternalFieldCount(1); - - Local constructor = Nan::GetFunction(tpl).ToLocalChecked(); - Local instance = - constructor->NewInstance(Nan::GetCurrentContext()).ToLocalChecked(); - Nan::SetInternalFieldPointer(instance, 0, tree_sitter_cpon()); - - Nan::Set(instance, Nan::New("name").ToLocalChecked(), - Nan::New("cpon").ToLocalChecked()); - Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance); + Local tpl = Nan::New(New); + tpl->SetClassName(Nan::New("Language").ToLocalChecked()); + tpl->InstanceTemplate()->SetInternalFieldCount(1); + + Local constructor = Nan::GetFunction(tpl).ToLocalChecked(); + Local instance = + constructor->NewInstance(Nan::GetCurrentContext()).ToLocalChecked(); + Nan::SetInternalFieldPointer(instance, 0, tree_sitter_cpon()); + + Nan::Set(instance, Nan::New("name").ToLocalChecked(), + Nan::New("cpon").ToLocalChecked()); + Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance); } NODE_MODULE(tree_sitter_cpon, Init) diff --git a/grammar.js b/grammar.js index 4e58d7d..be97e67 100644 --- a/grammar.js +++ b/grammar.js @@ -41,11 +41,9 @@ module.exports = grammar({ ), ), - meta_map: $ => seq( - '<', optionalCommaSep($._meta_pair), '>', - ), + meta_map: $ => seq('<', optionalCommaSep($.meta_pair), '>'), - _meta_pair: $ => seq( + meta_pair: $ => seq( field('key', choice($.string, $.number, $.float)), ':', field('value', $._value), diff --git a/queries/highlights.scm b/queries/highlights.scm index f086472..f6e0944 100644 --- a/queries/highlights.scm +++ b/queries/highlights.scm @@ -15,6 +15,8 @@ "d" @character.special (_) @string.special) +(_ key: (_) @label) + (number) @number (float) @float diff --git a/src/grammar.json b/src/grammar.json index c29d5c1..390a8d5 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -86,7 +86,7 @@ "members": [ { "type": "SYMBOL", - "name": "_meta_pair" + "name": "meta_pair" }, { "type": "REPEAT", @@ -102,7 +102,7 @@ }, { "type": "SYMBOL", - "name": "_meta_pair" + "name": "meta_pair" } ] } @@ -127,7 +127,7 @@ } ] }, - "_meta_pair": { + "meta_pair": { "type": "SEQ", "members": [ { diff --git a/src/node-types.json b/src/node-types.json index c451840..7011023 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -258,10 +258,25 @@ { "type": "meta_map", "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "meta_pair", + "named": true + } + ] + } + }, + { + "type": "meta_pair", + "named": true, "fields": { "key": { - "multiple": true, - "required": false, + "multiple": false, + "required": true, "types": [ { "type": "float", @@ -279,7 +294,7 @@ }, "value": { "multiple": true, - "required": false, + "required": true, "types": [ { "type": "array", diff --git a/src/parser.c b/src/parser.c index 0037233..3c6a3f0 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,7 +6,7 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 86 +#define STATE_COUNT 84 #define LARGE_STATE_COUNT 12 #define SYMBOL_COUNT 46 #define ALIAS_COUNT 0 @@ -14,7 +14,7 @@ #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 2 #define MAX_ALIAS_SEQUENCE_LENGTH 6 -#define PRODUCTION_ID_COUNT 6 +#define PRODUCTION_ID_COUNT 2 enum { anon_sym_LT = 1, @@ -44,7 +44,7 @@ enum { sym_document = 25, sym__value = 26, sym_meta_map = 27, - sym__meta_pair = 28, + sym_meta_pair = 28, sym_map = 29, sym_pair = 30, sym_imap = 31, @@ -93,7 +93,7 @@ static const char * const ts_symbol_names[] = { [sym_document] = "document", [sym__value] = "_value", [sym_meta_map] = "meta_map", - [sym__meta_pair] = "_meta_pair", + [sym_meta_pair] = "meta_pair", [sym_map] = "map", [sym_pair] = "pair", [sym_imap] = "imap", @@ -142,7 +142,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_document] = sym_document, [sym__value] = sym__value, [sym_meta_map] = sym_meta_map, - [sym__meta_pair] = sym__meta_pair, + [sym_meta_pair] = sym_meta_pair, [sym_map] = sym_map, [sym_pair] = sym_pair, [sym_imap] = sym_imap, @@ -275,8 +275,8 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym__meta_pair] = { - .visible = false, + [sym_meta_pair] = { + .visible = true, .named = true, }, [sym_map] = { @@ -362,32 +362,12 @@ static const char * const ts_field_names[] = { static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 2}, - [2] = {.index = 2, .length = 2}, - [3] = {.index = 4, .length = 2}, - [4] = {.index = 6, .length = 4}, - [5] = {.index = 10, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = - {field_key, 1, .inherited = true}, - {field_value, 1, .inherited = true}, - [2] = - {field_key, 0, .inherited = true}, - {field_value, 0, .inherited = true}, - [4] = {field_key, 0}, {field_value, 2}, - [6] = - {field_key, 1, .inherited = true}, - {field_key, 2, .inherited = true}, - {field_value, 1, .inherited = true}, - {field_value, 2, .inherited = true}, - [10] = - {field_key, 0, .inherited = true}, - {field_key, 1, .inherited = true}, - {field_value, 0, .inherited = true}, - {field_value, 1, .inherited = true}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { @@ -483,8 +463,6 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [81] = 81, [82] = 82, [83] = 83, - [84] = 84, - [85] = 85, }; static inline bool sym_escape_sequence_character_set_1(int32_t c) { @@ -1033,17 +1011,17 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [48] = {.lex_state = 0}, [49] = {.lex_state = 0}, [50] = {.lex_state = 0}, - [51] = {.lex_state = 0}, + [51] = {.lex_state = 1}, [52] = {.lex_state = 1}, [53] = {.lex_state = 0}, [54] = {.lex_state = 0}, [55] = {.lex_state = 0}, - [56] = {.lex_state = 0}, + [56] = {.lex_state = 1}, [57] = {.lex_state = 0}, - [58] = {.lex_state = 1}, + [58] = {.lex_state = 0}, [59] = {.lex_state = 1}, [60] = {.lex_state = 1}, - [61] = {.lex_state = 1}, + [61] = {.lex_state = 0}, [62] = {.lex_state = 0}, [63] = {.lex_state = 0}, [64] = {.lex_state = 0}, @@ -1054,20 +1032,18 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [69] = {.lex_state = 0}, [70] = {.lex_state = 0}, [71] = {.lex_state = 0}, - [72] = {.lex_state = 0}, + [72] = {.lex_state = 95}, [73] = {.lex_state = 8}, [74] = {.lex_state = 0}, [75] = {.lex_state = 0}, [76] = {.lex_state = 0}, [77] = {.lex_state = 0}, - [78] = {.lex_state = 95}, + [78] = {.lex_state = 0}, [79] = {.lex_state = 0}, [80] = {.lex_state = 0}, [81] = {.lex_state = 0}, [82] = {.lex_state = 0}, [83] = {.lex_state = 0}, - [84] = {.lex_state = 0}, - [85] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -1096,17 +1072,17 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [1] = { - [sym_document] = STATE(84), - [sym__value] = STATE(83), + [sym_document] = STATE(82), + [sym__value] = STATE(80), [sym_meta_map] = STATE(12), - [sym_map] = STATE(83), - [sym_imap] = STATE(83), - [sym_array] = STATE(83), - [sym_string] = STATE(83), - [sym_datetime] = STATE(83), - [sym_boolean] = STATE(83), - [sym_hex_blob] = STATE(83), - [sym_esc_blob] = STATE(83), + [sym_map] = STATE(80), + [sym_imap] = STATE(80), + [sym_array] = STATE(80), + [sym_string] = STATE(80), + [sym_datetime] = STATE(80), + [sym_boolean] = STATE(80), + [sym_hex_blob] = STATE(80), + [sym_esc_blob] = STATE(80), [anon_sym_LT] = ACTIONS(5), [anon_sym_LBRACE] = ACTIONS(7), [anon_sym_i] = ACTIONS(9), @@ -1326,16 +1302,16 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [9] = { - [sym__value] = STATE(70), + [sym__value] = STATE(68), [sym_meta_map] = STATE(12), - [sym_map] = STATE(70), - [sym_imap] = STATE(70), - [sym_array] = STATE(70), - [sym_string] = STATE(70), - [sym_datetime] = STATE(70), - [sym_boolean] = STATE(70), - [sym_hex_blob] = STATE(70), - [sym_esc_blob] = STATE(70), + [sym_map] = STATE(68), + [sym_imap] = STATE(68), + [sym_array] = STATE(68), + [sym_string] = STATE(68), + [sym_datetime] = STATE(68), + [sym_boolean] = STATE(68), + [sym_hex_blob] = STATE(68), + [sym_esc_blob] = STATE(68), [anon_sym_LT] = ACTIONS(5), [anon_sym_LBRACE] = ACTIONS(7), [anon_sym_i] = ACTIONS(9), @@ -1352,16 +1328,16 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [10] = { - [sym__value] = STATE(71), + [sym__value] = STATE(70), [sym_meta_map] = STATE(12), - [sym_map] = STATE(71), - [sym_imap] = STATE(71), - [sym_array] = STATE(71), - [sym_string] = STATE(71), - [sym_datetime] = STATE(71), - [sym_boolean] = STATE(71), - [sym_hex_blob] = STATE(71), - [sym_esc_blob] = STATE(71), + [sym_map] = STATE(70), + [sym_imap] = STATE(70), + [sym_array] = STATE(70), + [sym_string] = STATE(70), + [sym_datetime] = STATE(70), + [sym_boolean] = STATE(70), + [sym_hex_blob] = STATE(70), + [sym_esc_blob] = STATE(70), [anon_sym_LT] = ACTIONS(5), [anon_sym_LBRACE] = ACTIONS(7), [anon_sym_i] = ACTIONS(9), @@ -1378,16 +1354,16 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [11] = { - [sym__value] = STATE(66), + [sym__value] = STATE(62), [sym_meta_map] = STATE(12), - [sym_map] = STATE(66), - [sym_imap] = STATE(66), - [sym_array] = STATE(66), - [sym_string] = STATE(66), - [sym_datetime] = STATE(66), - [sym_boolean] = STATE(66), - [sym_hex_blob] = STATE(66), - [sym_esc_blob] = STATE(66), + [sym_map] = STATE(62), + [sym_imap] = STATE(62), + [sym_array] = STATE(62), + [sym_string] = STATE(62), + [sym_datetime] = STATE(62), + [sym_boolean] = STATE(62), + [sym_hex_blob] = STATE(62), + [sym_esc_blob] = STATE(62), [anon_sym_LT] = ACTIONS(5), [anon_sym_LBRACE] = ACTIONS(7), [anon_sym_i] = ACTIONS(9), @@ -2015,393 +1991,373 @@ static const uint16_t ts_small_parse_table[] = { sym_null, anon_sym_x, anon_sym_b, - [701] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(218), 2, - sym_number, - sym_float, - ACTIONS(216), 10, - anon_sym_LBRACE, - anon_sym_i, - anon_sym_LBRACK, - anon_sym_DQUOTE, - anon_sym_d, - anon_sym_true, - anon_sym_false, - sym_null, - anon_sym_x, - anon_sym_b, - [721] = 9, + [701] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(13), 1, anon_sym_DQUOTE, - ACTIONS(220), 1, + ACTIONS(216), 1, anon_sym_COMMA, - ACTIONS(222), 1, + ACTIONS(218), 1, anon_sym_GT, - STATE(42), 1, - aux_sym_meta_map_repeat2, STATE(43), 1, aux_sym_meta_map_repeat1, - STATE(64), 1, - sym__meta_pair, STATE(79), 1, sym_string, - ACTIONS(224), 2, + ACTIONS(220), 2, sym_number, sym_float, - [750] = 9, + STATE(40), 2, + sym_meta_pair, + aux_sym_meta_map_repeat2, + [728] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(226), 1, + ACTIONS(222), 1, anon_sym_COMMA, - ACTIONS(229), 1, + ACTIONS(225), 1, anon_sym_GT, - ACTIONS(231), 1, + ACTIONS(227), 1, anon_sym_DQUOTE, - STATE(41), 1, - aux_sym_meta_map_repeat2, - STATE(45), 1, + STATE(50), 1, aux_sym_meta_map_repeat1, - STATE(64), 1, - sym__meta_pair, STATE(79), 1, sym_string, - ACTIONS(234), 2, + ACTIONS(230), 2, sym_number, sym_float, - [779] = 9, + STATE(40), 2, + sym_meta_pair, + aux_sym_meta_map_repeat2, + [755] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(13), 1, anon_sym_DQUOTE, - ACTIONS(237), 1, + ACTIONS(233), 1, anon_sym_COMMA, - ACTIONS(239), 1, + ACTIONS(235), 1, anon_sym_GT, - STATE(41), 1, - aux_sym_meta_map_repeat2, - STATE(44), 1, + STATE(42), 1, aux_sym_meta_map_repeat1, - STATE(64), 1, - sym__meta_pair, STATE(79), 1, sym_string, - ACTIONS(224), 2, + ACTIONS(220), 2, sym_number, sym_float, - [808] = 8, + STATE(39), 2, + sym_meta_pair, + aux_sym_meta_map_repeat2, + [782] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(13), 1, anon_sym_DQUOTE, ACTIONS(81), 1, anon_sym_COMMA, - ACTIONS(241), 1, + ACTIONS(218), 1, anon_sym_GT, STATE(24), 1, aux_sym_meta_map_repeat1, - STATE(62), 1, - sym__meta_pair, + STATE(63), 1, + sym_meta_pair, STATE(79), 1, sym_string, - ACTIONS(224), 2, + ACTIONS(220), 2, sym_number, sym_float, - [834] = 8, + [808] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(13), 1, anon_sym_DQUOTE, ACTIONS(81), 1, anon_sym_COMMA, - ACTIONS(243), 1, + ACTIONS(237), 1, anon_sym_GT, STATE(24), 1, aux_sym_meta_map_repeat1, - STATE(62), 1, - sym__meta_pair, + STATE(63), 1, + sym_meta_pair, STATE(79), 1, sym_string, - ACTIONS(224), 2, + ACTIONS(220), 2, sym_number, sym_float, - [860] = 7, + [834] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(13), 1, anon_sym_DQUOTE, - ACTIONS(81), 1, + ACTIONS(239), 1, anon_sym_COMMA, - STATE(24), 1, + ACTIONS(241), 1, + anon_sym_RBRACE, + STATE(58), 1, aux_sym_meta_map_repeat1, - STATE(62), 1, - sym__meta_pair, - STATE(79), 1, + STATE(76), 1, sym_string, - ACTIONS(224), 2, - sym_number, - sym_float, - [883] = 7, + STATE(48), 2, + sym_pair, + aux_sym_map_repeat1, + [857] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(13), 1, - anon_sym_DQUOTE, - ACTIONS(245), 1, + ACTIONS(243), 1, anon_sym_COMMA, - ACTIONS(247), 1, + ACTIONS(246), 1, anon_sym_RBRACE, - STATE(56), 1, + ACTIONS(248), 1, + anon_sym_DQUOTE, + STATE(64), 1, aux_sym_meta_map_repeat1, - STATE(74), 1, + STATE(76), 1, sym_string, - STATE(51), 2, + STATE(45), 2, sym_pair, aux_sym_map_repeat1, - [906] = 6, + [880] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(249), 1, + ACTIONS(251), 1, anon_sym_COMMA, - ACTIONS(252), 1, + ACTIONS(253), 1, anon_sym_RBRACE, - STATE(63), 1, + STATE(54), 1, aux_sym_meta_map_repeat1, - ACTIONS(254), 2, + ACTIONS(255), 2, sym_number, sym_float, - STATE(47), 2, + STATE(49), 2, sym_ipair, aux_sym_imap_repeat1, - [927] = 7, + [901] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(13), 1, - anon_sym_DQUOTE, ACTIONS(257), 1, anon_sym_COMMA, ACTIONS(259), 1, anon_sym_RBRACE, - STATE(54), 1, + STATE(55), 1, aux_sym_meta_map_repeat1, - STATE(74), 1, - sym_string, + ACTIONS(255), 2, + sym_number, + sym_float, STATE(46), 2, - sym_pair, - aux_sym_map_repeat1, - [950] = 6, + sym_ipair, + aux_sym_imap_repeat1, + [922] = 7, ACTIONS(3), 1, sym_comment, + ACTIONS(13), 1, + anon_sym_DQUOTE, ACTIONS(261), 1, anon_sym_COMMA, ACTIONS(263), 1, anon_sym_RBRACE, - STATE(57), 1, + STATE(53), 1, aux_sym_meta_map_repeat1, - ACTIONS(265), 2, - sym_number, - sym_float, - STATE(50), 2, - sym_ipair, - aux_sym_imap_repeat1, - [971] = 6, + STATE(76), 1, + sym_string, + STATE(45), 2, + sym_pair, + aux_sym_map_repeat1, + [945] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(267), 1, + ACTIONS(265), 1, anon_sym_COMMA, - ACTIONS(269), 1, + ACTIONS(268), 1, anon_sym_RBRACE, - STATE(55), 1, + STATE(61), 1, aux_sym_meta_map_repeat1, - ACTIONS(265), 2, + ACTIONS(270), 2, sym_number, sym_float, - STATE(47), 2, + STATE(49), 2, sym_ipair, aux_sym_imap_repeat1, - [992] = 7, + [966] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(271), 1, - anon_sym_COMMA, - ACTIONS(274), 1, - anon_sym_RBRACE, - ACTIONS(276), 1, + ACTIONS(13), 1, anon_sym_DQUOTE, - STATE(65), 1, + ACTIONS(81), 1, + anon_sym_COMMA, + STATE(24), 1, aux_sym_meta_map_repeat1, - STATE(74), 1, + STATE(63), 1, + sym_meta_pair, + STATE(79), 1, sym_string, - STATE(51), 2, - sym_pair, - aux_sym_map_repeat1, - [1015] = 4, - ACTIONS(279), 1, + ACTIONS(220), 2, + sym_number, + sym_float, + [989] = 4, + ACTIONS(273), 1, anon_sym_DQUOTE, - ACTIONS(283), 1, + ACTIONS(277), 1, sym_comment, - STATE(59), 2, + STATE(60), 2, sym__escape_sequence, aux_sym_string_repeat1, - ACTIONS(281), 3, + ACTIONS(275), 3, sym_string_content, aux_sym__escape_sequence_token1, sym_escape_sequence, - [1031] = 6, - ACTIONS(3), 1, + [1005] = 4, + ACTIONS(277), 1, sym_comment, - ACTIONS(13), 1, + ACTIONS(279), 1, anon_sym_DQUOTE, - ACTIONS(285), 1, - anon_sym_GT, - STATE(40), 1, - sym__meta_pair, - STATE(79), 1, - sym_string, - ACTIONS(224), 2, - sym_number, - sym_float, - [1051] = 7, + STATE(56), 2, + sym__escape_sequence, + aux_sym_string_repeat1, + ACTIONS(281), 3, + sym_string_content, + aux_sym__escape_sequence_token1, + sym_escape_sequence, + [1021] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(13), 1, anon_sym_DQUOTE, ACTIONS(81), 1, anon_sym_COMMA, - ACTIONS(247), 1, + ACTIONS(283), 1, anon_sym_RBRACE, STATE(24), 1, aux_sym_meta_map_repeat1, - STATE(72), 1, + STATE(69), 1, sym_pair, - STATE(74), 1, + STATE(76), 1, sym_string, - [1073] = 6, + [1043] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(81), 1, anon_sym_COMMA, - ACTIONS(287), 1, + ACTIONS(285), 1, anon_sym_RBRACE, STATE(24), 1, aux_sym_meta_map_repeat1, - STATE(69), 1, + STATE(67), 1, sym_ipair, - ACTIONS(265), 2, + ACTIONS(255), 2, sym_number, sym_float, - [1093] = 7, + [1063] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(13), 1, - anon_sym_DQUOTE, ACTIONS(81), 1, anon_sym_COMMA, - ACTIONS(289), 1, + ACTIONS(253), 1, anon_sym_RBRACE, STATE(24), 1, aux_sym_meta_map_repeat1, - STATE(72), 1, - sym_pair, - STATE(74), 1, - sym_string, - [1115] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(81), 1, - anon_sym_COMMA, - ACTIONS(269), 1, - anon_sym_RBRACE, - STATE(24), 1, - aux_sym_meta_map_repeat1, - STATE(69), 1, + STATE(67), 1, sym_ipair, - ACTIONS(265), 2, + ACTIONS(255), 2, sym_number, sym_float, - [1135] = 4, - ACTIONS(283), 1, + [1083] = 4, + ACTIONS(277), 1, sym_comment, - ACTIONS(291), 1, + ACTIONS(287), 1, anon_sym_DQUOTE, - STATE(58), 2, + STATE(56), 2, sym__escape_sequence, aux_sym_string_repeat1, - ACTIONS(293), 3, + ACTIONS(289), 3, sym_string_content, aux_sym__escape_sequence_token1, sym_escape_sequence, - [1151] = 4, - ACTIONS(283), 1, + [1099] = 6, + ACTIONS(3), 1, sym_comment, - ACTIONS(296), 1, + ACTIONS(13), 1, anon_sym_DQUOTE, - STATE(58), 2, - sym__escape_sequence, - aux_sym_string_repeat1, - ACTIONS(298), 3, - sym_string_content, - aux_sym__escape_sequence_token1, - sym_escape_sequence, - [1167] = 4, - ACTIONS(283), 1, + ACTIONS(292), 1, + anon_sym_GT, + STATE(41), 1, + sym_meta_pair, + STATE(79), 1, + sym_string, + ACTIONS(220), 2, + sym_number, + sym_float, + [1119] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(13), 1, + anon_sym_DQUOTE, + ACTIONS(81), 1, + anon_sym_COMMA, + ACTIONS(263), 1, + anon_sym_RBRACE, + STATE(24), 1, + aux_sym_meta_map_repeat1, + STATE(69), 1, + sym_pair, + STATE(76), 1, + sym_string, + [1141] = 4, + ACTIONS(277), 1, sym_comment, - ACTIONS(300), 1, + ACTIONS(294), 1, anon_sym_DQUOTE, - STATE(61), 2, + STATE(52), 2, sym__escape_sequence, aux_sym_string_repeat1, - ACTIONS(302), 3, + ACTIONS(296), 3, sym_string_content, aux_sym__escape_sequence_token1, sym_escape_sequence, - [1183] = 4, - ACTIONS(283), 1, + [1157] = 4, + ACTIONS(277), 1, sym_comment, - ACTIONS(304), 1, + ACTIONS(298), 1, anon_sym_DQUOTE, - STATE(58), 2, + STATE(56), 2, sym__escape_sequence, aux_sym_string_repeat1, - ACTIONS(298), 3, + ACTIONS(281), 3, sym_string_content, aux_sym__escape_sequence_token1, sym_escape_sequence, - [1199] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(308), 2, - sym_number, - sym_float, - ACTIONS(306), 3, - anon_sym_COMMA, - anon_sym_GT, - anon_sym_DQUOTE, - [1212] = 5, + [1173] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(81), 1, anon_sym_COMMA, STATE(24), 1, aux_sym_meta_map_repeat1, - STATE(69), 1, + STATE(67), 1, sym_ipair, - ACTIONS(265), 2, + ACTIONS(255), 2, sym_number, sym_float, - [1229] = 3, + [1190] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(312), 2, + ACTIONS(302), 2, sym_number, sym_float, - ACTIONS(310), 3, + ACTIONS(300), 3, anon_sym_COMMA, anon_sym_GT, anon_sym_DQUOTE, - [1242] = 6, + [1203] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(304), 2, + sym_number, + sym_float, + ACTIONS(225), 3, + anon_sym_COMMA, + anon_sym_GT, + anon_sym_DQUOTE, + [1216] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(13), 1, @@ -2410,137 +2366,127 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, STATE(24), 1, aux_sym_meta_map_repeat1, - STATE(72), 1, + STATE(69), 1, sym_pair, - STATE(74), 1, + STATE(76), 1, sym_string, - [1261] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(316), 2, - sym_number, - sym_float, - ACTIONS(314), 3, - anon_sym_COMMA, - anon_sym_GT, - anon_sym_DQUOTE, - [1274] = 4, + [1235] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(318), 1, + ACTIONS(306), 1, anon_sym_RBRACE, - STATE(49), 1, + STATE(47), 1, sym_ipair, - ACTIONS(265), 2, + ACTIONS(255), 2, sym_number, sym_float, - [1288] = 5, + [1249] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(13), 1, anon_sym_DQUOTE, - ACTIONS(320), 1, + ACTIONS(308), 1, anon_sym_RBRACE, - STATE(48), 1, + STATE(44), 1, sym_pair, - STATE(74), 1, + STATE(76), 1, sym_string, - [1304] = 3, + [1265] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(252), 2, + ACTIONS(268), 2, anon_sym_COMMA, anon_sym_RBRACE, - ACTIONS(322), 2, + ACTIONS(310), 2, sym_number, sym_float, - [1316] = 3, + [1277] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(324), 2, + ACTIONS(312), 2, anon_sym_COMMA, anon_sym_RBRACE, - ACTIONS(326), 2, + ACTIONS(314), 2, sym_number, sym_float, - [1328] = 2, + [1289] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(328), 3, + ACTIONS(246), 3, anon_sym_COMMA, anon_sym_RBRACE, anon_sym_DQUOTE, - [1337] = 2, + [1298] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(274), 3, + ACTIONS(316), 3, anon_sym_COMMA, anon_sym_RBRACE, anon_sym_DQUOTE, - [1346] = 2, + [1307] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(330), 1, - aux_sym_datetime_token1, - [1353] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(332), 1, - anon_sym_COLON, - [1360] = 2, - ACTIONS(3), 1, + ACTIONS(318), 1, + anon_sym_DQUOTE, + [1314] = 2, + ACTIONS(277), 1, sym_comment, - ACTIONS(334), 1, - anon_sym_COLON, - [1367] = 2, + ACTIONS(320), 1, + aux_sym_hex_blob_token1, + [1321] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(336), 1, - anon_sym_LBRACE, - [1374] = 2, + ACTIONS(322), 1, + aux_sym_datetime_token1, + [1328] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(338), 1, + ACTIONS(324), 1, anon_sym_DQUOTE, - [1381] = 2, - ACTIONS(283), 1, + [1335] = 2, + ACTIONS(3), 1, sym_comment, - ACTIONS(340), 1, - aux_sym_hex_blob_token1, - [1388] = 2, + ACTIONS(326), 1, + anon_sym_LBRACE, + [1342] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(342), 1, + ACTIONS(328), 1, anon_sym_COLON, - [1395] = 2, + [1349] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(344), 1, + ACTIONS(330), 1, anon_sym_DQUOTE, - [1402] = 2, + [1356] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(346), 1, - anon_sym_DQUOTE, - [1409] = 2, + ACTIONS(332), 1, + anon_sym_COLON, + [1363] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(348), 1, - anon_sym_DQUOTE, - [1416] = 2, + ACTIONS(334), 1, + anon_sym_COLON, + [1370] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(350), 1, + ACTIONS(336), 1, ts_builtin_sym_end, - [1423] = 2, + [1377] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(352), 1, + ACTIONS(338), 1, + anon_sym_DQUOTE, + [1384] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(340), 1, ts_builtin_sym_end, - [1430] = 2, + [1391] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(354), 1, + ACTIONS(342), 1, anon_sym_DQUOTE, }; @@ -2573,88 +2519,86 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(37)] = 661, [SMALL_STATE(38)] = 681, [SMALL_STATE(39)] = 701, - [SMALL_STATE(40)] = 721, - [SMALL_STATE(41)] = 750, - [SMALL_STATE(42)] = 779, + [SMALL_STATE(40)] = 728, + [SMALL_STATE(41)] = 755, + [SMALL_STATE(42)] = 782, [SMALL_STATE(43)] = 808, [SMALL_STATE(44)] = 834, - [SMALL_STATE(45)] = 860, - [SMALL_STATE(46)] = 883, - [SMALL_STATE(47)] = 906, - [SMALL_STATE(48)] = 927, - [SMALL_STATE(49)] = 950, - [SMALL_STATE(50)] = 971, - [SMALL_STATE(51)] = 992, - [SMALL_STATE(52)] = 1015, - [SMALL_STATE(53)] = 1031, - [SMALL_STATE(54)] = 1051, - [SMALL_STATE(55)] = 1073, - [SMALL_STATE(56)] = 1093, - [SMALL_STATE(57)] = 1115, - [SMALL_STATE(58)] = 1135, - [SMALL_STATE(59)] = 1151, - [SMALL_STATE(60)] = 1167, - [SMALL_STATE(61)] = 1183, - [SMALL_STATE(62)] = 1199, - [SMALL_STATE(63)] = 1212, - [SMALL_STATE(64)] = 1229, - [SMALL_STATE(65)] = 1242, - [SMALL_STATE(66)] = 1261, - [SMALL_STATE(67)] = 1274, - [SMALL_STATE(68)] = 1288, - [SMALL_STATE(69)] = 1304, - [SMALL_STATE(70)] = 1316, - [SMALL_STATE(71)] = 1328, - [SMALL_STATE(72)] = 1337, - [SMALL_STATE(73)] = 1346, - [SMALL_STATE(74)] = 1353, - [SMALL_STATE(75)] = 1360, - [SMALL_STATE(76)] = 1367, - [SMALL_STATE(77)] = 1374, - [SMALL_STATE(78)] = 1381, - [SMALL_STATE(79)] = 1388, - [SMALL_STATE(80)] = 1395, - [SMALL_STATE(81)] = 1402, - [SMALL_STATE(82)] = 1409, - [SMALL_STATE(83)] = 1416, - [SMALL_STATE(84)] = 1423, - [SMALL_STATE(85)] = 1430, + [SMALL_STATE(45)] = 857, + [SMALL_STATE(46)] = 880, + [SMALL_STATE(47)] = 901, + [SMALL_STATE(48)] = 922, + [SMALL_STATE(49)] = 945, + [SMALL_STATE(50)] = 966, + [SMALL_STATE(51)] = 989, + [SMALL_STATE(52)] = 1005, + [SMALL_STATE(53)] = 1021, + [SMALL_STATE(54)] = 1043, + [SMALL_STATE(55)] = 1063, + [SMALL_STATE(56)] = 1083, + [SMALL_STATE(57)] = 1099, + [SMALL_STATE(58)] = 1119, + [SMALL_STATE(59)] = 1141, + [SMALL_STATE(60)] = 1157, + [SMALL_STATE(61)] = 1173, + [SMALL_STATE(62)] = 1190, + [SMALL_STATE(63)] = 1203, + [SMALL_STATE(64)] = 1216, + [SMALL_STATE(65)] = 1235, + [SMALL_STATE(66)] = 1249, + [SMALL_STATE(67)] = 1265, + [SMALL_STATE(68)] = 1277, + [SMALL_STATE(69)] = 1289, + [SMALL_STATE(70)] = 1298, + [SMALL_STATE(71)] = 1307, + [SMALL_STATE(72)] = 1314, + [SMALL_STATE(73)] = 1321, + [SMALL_STATE(74)] = 1328, + [SMALL_STATE(75)] = 1335, + [SMALL_STATE(76)] = 1342, + [SMALL_STATE(77)] = 1349, + [SMALL_STATE(78)] = 1356, + [SMALL_STATE(79)] = 1363, + [SMALL_STATE(80)] = 1370, + [SMALL_STATE(81)] = 1377, + [SMALL_STATE(82)] = 1384, + [SMALL_STATE(83)] = 1391, }; 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_EXTRA(), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [27] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(53), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [27] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(57), [30] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(7), - [33] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(68), - [36] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(76), + [33] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(66), + [36] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(75), [39] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(8), [42] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), - [44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(60), + [44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(51), [47] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(2), - [50] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(80), - [53] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(32), + [50] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(71), + [53] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(26), [56] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(2), - [59] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(85), - [62] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(81), + [59] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(77), + [62] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2), SHIFT_REPEAT(74), [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), @@ -2664,12 +2608,12 @@ static const TSParseActionEntry ts_parse_actions[] = { [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4), [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), - [101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3), @@ -2678,118 +2622,112 @@ static const TSParseActionEntry ts_parse_actions[] = { [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2), [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array, 2), [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array, 2), - [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array, 3), - [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array, 3), + [123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_datetime, 4), + [125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_datetime, 4), [127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_imap, 6), [129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_imap, 6), [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array, 5), [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array, 5), - [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_imap, 5), - [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_imap, 5), - [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_imap, 3), - [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_imap, 3), - [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map, 5), - [145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map, 5), - [147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_esc_blob, 3), - [149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_esc_blob, 3), + [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_esc_blob, 3), + [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_esc_blob, 3), + [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map, 4), + [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map, 4), + [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_imap, 5), + [145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_imap, 5), + [147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_imap, 4), + [149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_imap, 4), [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map, 2), [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map, 2), [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_map_repeat1, 2), [157] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_map_repeat1, 2), SHIFT_REPEAT(24), [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_meta_map_repeat1, 2), - [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_esc_blob, 4), - [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_esc_blob, 4), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hex_blob, 4), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hex_blob, 4), - [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_datetime, 4), - [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_datetime, 4), - [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map, 3), - [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map, 3), - [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array, 4), - [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array, 4), - [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_imap, 4), - [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_imap, 4), + [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map, 5), + [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map, 5), + [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), + [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array, 3), + [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array, 3), + [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_esc_blob, 4), + [176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_esc_blob, 4), + [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hex_blob, 4), + [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hex_blob, 4), + [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array, 4), + [184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array, 4), [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__value, 2), [188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__value, 2), - [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), - [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1), - [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map, 4), - [196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map, 4), + [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_imap, 3), + [192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_imap, 3), + [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map, 3), + [196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map, 3), [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_array_repeat1, 2), - [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta_map, 4, .production_id = 1), - [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_meta_map, 4, .production_id = 1), - [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta_map, 3, .production_id = 1), - [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_meta_map, 3, .production_id = 1), - [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta_map, 4, .production_id = 4), - [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_meta_map, 4, .production_id = 4), - [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta_map, 5, .production_id = 4), - [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_meta_map, 5, .production_id = 4), - [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta_map, 2), - [218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_meta_map, 2), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [224] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), - [226] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_map_repeat2, 2, .production_id = 5), SHIFT_REPEAT(45), - [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_map_repeat2, 2, .production_id = 5), - [231] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_map_repeat2, 2, .production_id = 5), SHIFT_REPEAT(60), - [234] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_meta_map_repeat2, 2, .production_id = 5), SHIFT_REPEAT(79), - [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [249] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_imap_repeat1, 2), SHIFT_REPEAT(63), - [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_imap_repeat1, 2), - [254] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_imap_repeat1, 2), SHIFT_REPEAT(75), - [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [265] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), - [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [271] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_map_repeat1, 2), SHIFT_REPEAT(65), - [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_map_repeat1, 2), - [276] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_map_repeat1, 2), SHIFT_REPEAT(60), - [279] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [281] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [291] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2), - [293] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2), SHIFT_REPEAT(58), - [296] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [298] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), - [300] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), - [302] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), - [304] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), - [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_map_repeat2, 2, .production_id = 1), - [308] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_meta_map_repeat2, 2, .production_id = 1), - [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_map_repeat2, 1, .production_id = 2), - [312] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_meta_map_repeat2, 1, .production_id = 2), - [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__meta_pair, 3, .production_id = 3), - [316] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__meta_pair, 3, .production_id = 3), - [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [322] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_imap_repeat1, 2), - [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ipair, 3, .production_id = 3), - [326] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ipair, 3, .production_id = 3), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pair, 3, .production_id = 3), - [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_document, 1), - [352] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta_map, 3), + [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_meta_map, 3), + [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta_map, 5), + [206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_meta_map, 5), + [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta_map, 2), + [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_meta_map, 2), + [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta_map, 4), + [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_meta_map, 4), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [222] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_map_repeat2, 2), SHIFT_REPEAT(50), + [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_map_repeat2, 2), + [227] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_map_repeat2, 2), SHIFT_REPEAT(51), + [230] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_meta_map_repeat2, 2), SHIFT_REPEAT(79), + [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [243] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_map_repeat1, 2), SHIFT_REPEAT(64), + [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_map_repeat1, 2), + [248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_map_repeat1, 2), SHIFT_REPEAT(51), + [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [255] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [265] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_imap_repeat1, 2), SHIFT_REPEAT(61), + [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_imap_repeat1, 2), + [270] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_imap_repeat1, 2), SHIFT_REPEAT(78), + [273] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), + [275] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), + [277] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [279] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), + [281] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [287] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2), + [289] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2), SHIFT_REPEAT(56), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [294] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), + [296] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), + [298] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta_pair, 3, .production_id = 1), + [302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_meta_pair, 3, .production_id = 1), + [304] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_meta_map_repeat2, 2), + [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_imap_repeat1, 2), + [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ipair, 3, .production_id = 1), + [314] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ipair, 3, .production_id = 1), + [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pair, 3, .production_id = 1), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_document, 1), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [340] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), }; #ifdef __cplusplus diff --git a/test/corpus/main.txt b/test/corpus/main.txt index db951d5..78abccb 100644 --- a/test/corpus/main.txt +++ b/test/corpus/main.txt @@ -8,17 +8,20 @@ Meta (document (meta_map - (string - (string_content)) - (string - (string_content)) - (number) - (meta_map - (number) - (string - (string_content))) - (string - (string_content))) + (meta_pair + (string + (string_content)) + (string + (string_content))) + (meta_pair + (number) + (meta_map + (meta_pair + (number) + (string + (string_content)))) + (string + (string_content)))) (number)) @@ -39,17 +42,20 @@ Meta with weird spacing (document (meta_map - (string - (string_content)) - (string - (string_content)) - (number) - (meta_map - (number) - (string - (string_content))) - (string - (string_content))) + (meta_pair + (string + (string_content)) + (string + (string_content))) + (meta_pair + (number) + (meta_map + (meta_pair + (number) + (string + (string_content)))) + (string + (string_content)))) (number)) diff --git a/test/highlight/highlight.cpon b/test/highlight/highlight.cpon index a221f24..5e59bb4 100644 --- a/test/highlight/highlight.cpon +++ b/test/highlight/highlight.cpon @@ -5,7 +5,7 @@ // <- comment "Hello, World! // not a comment\n"; -// <- string +// ^^^ string // ^^ string.escape true @@ -17,25 +17,11 @@ false null // <- constant.builtin --123 -// <- number - --12.3e-45 -// <- float - 123 -// ^^^ number - -0x1b23A -// ^^^^^^^^ number - 123u -// ^^^^ number - 0xA123u -// ^^^^ number - < "ahoj": 888 , 123 : 1 > // <- punctuation.bracket // ^ punctuation.bracket -// ^^^^^^ string -// ^^^ number +// ^^^^ string +// ^^^ label // ^ punctuation.delimiter // ^ punctuation.delimiter