tree-sitter-objectscript 1.9.14 → 1.9.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/scanner.h +25 -3
- package/core/src/parser.c +30 -88
- package/core/src/scanner.c +16 -6
- package/expr/src/parser.c +12 -34
- package/objectscript/src/parser.c +9884 -9975
- package/objectscript_routine/queries/injections.scm +31 -0
- package/objectscript_routine/src/parser.c +38 -112
- package/package.json +2 -2
- package/prebuilds/darwin-arm64/tree-sitter-objectscript.node +0 -0
- package/prebuilds/darwin-x64/tree-sitter-objectscript.node +0 -0
- package/prebuilds/linux-arm64/tree-sitter-objectscript.node +0 -0
- package/prebuilds/linux-x64/tree-sitter-objectscript.node +0 -0
- package/prebuilds/win32-arm64/tree-sitter-objectscript.node +0 -0
- package/prebuilds/win32-x64/tree-sitter-objectscript.node +0 -0
- package/tree-sitter.json +1 -1
- package/udl/queries/injections.scm +12 -6
- package/udl/src/parser.c +13536 -13627
package/common/scanner.h
CHANGED
|
@@ -177,6 +177,9 @@ struct ObjectScript_Core_Scanner {
|
|
|
177
177
|
int32_t js_marker_buffer_reversed[MARKER_BUFFER_MAX_LEN];
|
|
178
178
|
int js_marker_buffer_reversed_len;
|
|
179
179
|
bool is_rtn_dot;
|
|
180
|
+
// Allows nested old-style commands to close before the same `. }` line
|
|
181
|
+
// is emitted as a dotted block end.
|
|
182
|
+
bool pending_dotted_block_end;
|
|
180
183
|
};
|
|
181
184
|
|
|
182
185
|
static inline bool is_label_char(int32_t c) {
|
|
@@ -542,6 +545,15 @@ ObjectScript_Core_Scanner_scan(struct ObjectScript_Core_Scanner *scanner,
|
|
|
542
545
|
if (valid_symbols[SENTINEL]) {
|
|
543
546
|
return false;
|
|
544
547
|
}
|
|
548
|
+
|
|
549
|
+
if (scanner->pending_dotted_block_end) {
|
|
550
|
+
if (lexer->lookahead == '.' && valid_symbols[_TERMINATION]) {
|
|
551
|
+
lexer->mark_end(lexer);
|
|
552
|
+
lexer->result_symbol = _TERMINATION;
|
|
553
|
+
return true;
|
|
554
|
+
}
|
|
555
|
+
scanner->pending_dotted_block_end = false;
|
|
556
|
+
}
|
|
545
557
|
scanner-> is_rtn_dot = false;
|
|
546
558
|
|
|
547
559
|
// this parses any line that ends in ##continue for
|
|
@@ -1099,11 +1111,18 @@ ObjectScript_Core_Scanner_scan(struct ObjectScript_Core_Scanner *scanner,
|
|
|
1099
1111
|
advance(lexer);
|
|
1100
1112
|
}
|
|
1101
1113
|
if (lexer->lookahead == '}') {
|
|
1114
|
+
if (valid_symbols[_TERMINATION]) {
|
|
1115
|
+
scanner->pending_dotted_block_end = true;
|
|
1116
|
+
lexer->result_symbol = _TERMINATION;
|
|
1117
|
+
return true;
|
|
1118
|
+
}
|
|
1102
1119
|
lexer->result_symbol = _BOL_BLOCK;
|
|
1120
|
+
scanner->pending_dotted_block_end = false;
|
|
1103
1121
|
scanner->terminated_newline = false;
|
|
1104
1122
|
return true;
|
|
1105
1123
|
}
|
|
1106
1124
|
lexer->result_symbol = _BOL;
|
|
1125
|
+
scanner->pending_dotted_block_end = false;
|
|
1107
1126
|
scanner->terminated_newline = false;
|
|
1108
1127
|
return true;
|
|
1109
1128
|
}
|
|
@@ -1112,9 +1131,10 @@ ObjectScript_Core_Scanner_scan(struct ObjectScript_Core_Scanner *scanner,
|
|
|
1112
1131
|
while (lexer->lookahead == ' ' || lexer->lookahead == '\t') advance(lexer);
|
|
1113
1132
|
|
|
1114
1133
|
if (lexer->lookahead == '.') {
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1134
|
+
lexer->result_symbol = _BOL;
|
|
1135
|
+
scanner->pending_dotted_block_end = false;
|
|
1136
|
+
scanner->terminated_newline = false;
|
|
1137
|
+
return true;
|
|
1118
1138
|
}
|
|
1119
1139
|
else {
|
|
1120
1140
|
lexer->mark_end(lexer);
|
|
@@ -1342,6 +1362,7 @@ ObjectScript_Core_Scanner_scan(struct ObjectScript_Core_Scanner *scanner,
|
|
|
1342
1362
|
}
|
|
1343
1363
|
lexer->mark_end(lexer);
|
|
1344
1364
|
lexer->result_symbol = BOL_EXTRA;
|
|
1365
|
+
scanner->pending_dotted_block_end = false;
|
|
1345
1366
|
scanner->terminated_newline = false;
|
|
1346
1367
|
return true;
|
|
1347
1368
|
}
|
|
@@ -1361,4 +1382,5 @@ static void ObjectScript_Core_Scanner_init(struct ObjectScript_Core_Scanner *sca
|
|
|
1361
1382
|
scanner->special_pound_if_mode = false;
|
|
1362
1383
|
scanner->special_pound_if_mode_if_depth = 0;
|
|
1363
1384
|
scanner->is_rtn_dot = false;
|
|
1385
|
+
scanner->pending_dotted_block_end = false;
|
|
1364
1386
|
}
|
package/core/src/parser.c
CHANGED
|
@@ -16416,9 +16416,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
16416
16416
|
'O', 1403,
|
|
16417
16417
|
);
|
|
16418
16418
|
if (lookahead != 0 &&
|
|
16419
|
-
lookahead != '\n'
|
|
16420
|
-
lookahead != 0x17f &&
|
|
16421
|
-
lookahead != 0x212a) ADVANCE(1407);
|
|
16419
|
+
lookahead != '\n') ADVANCE(1407);
|
|
16422
16420
|
END_STATE();
|
|
16423
16421
|
case 1:
|
|
16424
16422
|
ADVANCE_MAP(
|
|
@@ -19144,9 +19142,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
19144
19142
|
lookahead != '\n' &&
|
|
19145
19143
|
lookahead != '*' &&
|
|
19146
19144
|
lookahead != ':' &&
|
|
19147
|
-
lookahead != ';'
|
|
19148
|
-
lookahead != 0x17f &&
|
|
19149
|
-
lookahead != 0x212a) ADVANCE(1407);
|
|
19145
|
+
lookahead != ';') ADVANCE(1407);
|
|
19150
19146
|
END_STATE();
|
|
19151
19147
|
case 53:
|
|
19152
19148
|
ADVANCE_MAP(
|
|
@@ -19171,9 +19167,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
19171
19167
|
if (lookahead == '"') ADVANCE(1514);
|
|
19172
19168
|
if (lookahead == '\\') ADVANCE(249);
|
|
19173
19169
|
if (lookahead != 0 &&
|
|
19174
|
-
lookahead != '\n'
|
|
19175
|
-
lookahead != 0x17f &&
|
|
19176
|
-
lookahead != 0x212a) ADVANCE(54);
|
|
19170
|
+
lookahead != '\n') ADVANCE(54);
|
|
19177
19171
|
END_STATE();
|
|
19178
19172
|
case 55:
|
|
19179
19173
|
ADVANCE_MAP(
|
|
@@ -19334,9 +19328,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
19334
19328
|
END_STATE();
|
|
19335
19329
|
case 60:
|
|
19336
19330
|
if (lookahead == '"') ADVANCE(1511);
|
|
19337
|
-
if (lookahead != 0
|
|
19338
|
-
lookahead != 0x17f &&
|
|
19339
|
-
lookahead != 0x212a) ADVANCE(60);
|
|
19331
|
+
if (lookahead != 0) ADVANCE(60);
|
|
19340
19332
|
END_STATE();
|
|
19341
19333
|
case 61:
|
|
19342
19334
|
ADVANCE_MAP(
|
|
@@ -19435,25 +19427,19 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
19435
19427
|
if (lookahead == '"') ADVANCE(1240);
|
|
19436
19428
|
if (lookahead != 0 &&
|
|
19437
19429
|
lookahead != '\n' &&
|
|
19438
|
-
lookahead != '\r'
|
|
19439
|
-
lookahead != 0x17f &&
|
|
19440
|
-
lookahead != 0x212a) ADVANCE(74);
|
|
19430
|
+
lookahead != '\r') ADVANCE(74);
|
|
19441
19431
|
END_STATE();
|
|
19442
19432
|
case 75:
|
|
19443
19433
|
if (lookahead == '"') ADVANCE(78);
|
|
19444
19434
|
if (lookahead != 0 &&
|
|
19445
19435
|
lookahead != '\n' &&
|
|
19446
|
-
lookahead != '\r'
|
|
19447
|
-
lookahead != 0x17f &&
|
|
19448
|
-
lookahead != 0x212a) ADVANCE(75);
|
|
19436
|
+
lookahead != '\r') ADVANCE(75);
|
|
19449
19437
|
END_STATE();
|
|
19450
19438
|
case 76:
|
|
19451
19439
|
if (lookahead == '"') ADVANCE(89);
|
|
19452
19440
|
if (lookahead != 0 &&
|
|
19453
19441
|
lookahead != '\n' &&
|
|
19454
|
-
lookahead != '\r'
|
|
19455
|
-
lookahead != 0x17f &&
|
|
19456
|
-
lookahead != 0x212a) ADVANCE(76);
|
|
19442
|
+
lookahead != '\r') ADVANCE(76);
|
|
19457
19443
|
END_STATE();
|
|
19458
19444
|
case 77:
|
|
19459
19445
|
if (lookahead == '"') ADVANCE(1418);
|
|
@@ -19514,9 +19500,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
19514
19500
|
if (lookahead == '"') ADVANCE(84);
|
|
19515
19501
|
if (lookahead != 0 &&
|
|
19516
19502
|
lookahead != '\n' &&
|
|
19517
|
-
lookahead != '\r'
|
|
19518
|
-
lookahead != 0x17f &&
|
|
19519
|
-
lookahead != 0x212a) ADVANCE(83);
|
|
19503
|
+
lookahead != '\r') ADVANCE(83);
|
|
19520
19504
|
END_STATE();
|
|
19521
19505
|
case 84:
|
|
19522
19506
|
if (lookahead == '"') ADVANCE(83);
|
|
@@ -28855,9 +28839,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
28855
28839
|
if (lookahead == '"') ADVANCE(1514);
|
|
28856
28840
|
if (lookahead == '\\') ADVANCE(249);
|
|
28857
28841
|
if (lookahead != 0 &&
|
|
28858
|
-
lookahead != '\n'
|
|
28859
|
-
lookahead != 0x17f &&
|
|
28860
|
-
lookahead != 0x212a) ADVANCE(54);
|
|
28842
|
+
lookahead != '\n') ADVANCE(54);
|
|
28861
28843
|
END_STATE();
|
|
28862
28844
|
case 1407:
|
|
28863
28845
|
ACCEPT_TOKEN(aux_sym_sql_field_identifier_token2);
|
|
@@ -28890,42 +28872,32 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
28890
28872
|
if (lookahead == '#') ADVANCE(1415);
|
|
28891
28873
|
if (lookahead == '/') ADVANCE(1416);
|
|
28892
28874
|
if (lookahead == ';') ADVANCE(1526);
|
|
28893
|
-
if (lookahead != 0
|
|
28894
|
-
lookahead != 0x17f &&
|
|
28895
|
-
lookahead != 0x212a) ADVANCE(1418);
|
|
28875
|
+
if (lookahead != 0) ADVANCE(1418);
|
|
28896
28876
|
END_STATE();
|
|
28897
28877
|
case 1415:
|
|
28898
28878
|
ACCEPT_TOKEN(aux_sym__quoted_member_name_token1);
|
|
28899
28879
|
if (lookahead == '"') ADVANCE(77);
|
|
28900
28880
|
if (lookahead == '#') ADVANCE(1417);
|
|
28901
28881
|
if (lookahead == ';') ADVANCE(1523);
|
|
28902
|
-
if (lookahead != 0
|
|
28903
|
-
lookahead != 0x17f &&
|
|
28904
|
-
lookahead != 0x212a) ADVANCE(1418);
|
|
28882
|
+
if (lookahead != 0) ADVANCE(1418);
|
|
28905
28883
|
END_STATE();
|
|
28906
28884
|
case 1416:
|
|
28907
28885
|
ACCEPT_TOKEN(aux_sym__quoted_member_name_token1);
|
|
28908
28886
|
if (lookahead == '"') ADVANCE(77);
|
|
28909
28887
|
if (lookahead == '*') ADVANCE(1532);
|
|
28910
28888
|
if (lookahead == '/') ADVANCE(1520);
|
|
28911
|
-
if (lookahead != 0
|
|
28912
|
-
lookahead != 0x17f &&
|
|
28913
|
-
lookahead != 0x212a) ADVANCE(1418);
|
|
28889
|
+
if (lookahead != 0) ADVANCE(1418);
|
|
28914
28890
|
END_STATE();
|
|
28915
28891
|
case 1417:
|
|
28916
28892
|
ACCEPT_TOKEN(aux_sym__quoted_member_name_token1);
|
|
28917
28893
|
if (lookahead == '"') ADVANCE(77);
|
|
28918
28894
|
if (lookahead == ';') ADVANCE(1529);
|
|
28919
|
-
if (lookahead != 0
|
|
28920
|
-
lookahead != 0x17f &&
|
|
28921
|
-
lookahead != 0x212a) ADVANCE(1418);
|
|
28895
|
+
if (lookahead != 0) ADVANCE(1418);
|
|
28922
28896
|
END_STATE();
|
|
28923
28897
|
case 1418:
|
|
28924
28898
|
ACCEPT_TOKEN(aux_sym__quoted_member_name_token1);
|
|
28925
28899
|
if (lookahead == '"') ADVANCE(77);
|
|
28926
|
-
if (lookahead != 0
|
|
28927
|
-
lookahead != 0x17f &&
|
|
28928
|
-
lookahead != 0x212a) ADVANCE(1418);
|
|
28900
|
+
if (lookahead != 0) ADVANCE(1418);
|
|
28929
28901
|
END_STATE();
|
|
28930
28902
|
case 1419:
|
|
28931
28903
|
ACCEPT_TOKEN(anon_sym_POUND2);
|
|
@@ -29608,16 +29580,12 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
29608
29580
|
case 1520:
|
|
29609
29581
|
ACCEPT_TOKEN(anon_sym_SLASH_SLASH);
|
|
29610
29582
|
if (lookahead == '"') ADVANCE(77);
|
|
29611
|
-
if (lookahead != 0
|
|
29612
|
-
lookahead != 0x17f &&
|
|
29613
|
-
lookahead != 0x212a) ADVANCE(1418);
|
|
29583
|
+
if (lookahead != 0) ADVANCE(1418);
|
|
29614
29584
|
END_STATE();
|
|
29615
29585
|
case 1521:
|
|
29616
29586
|
ACCEPT_TOKEN(anon_sym_SLASH_SLASH);
|
|
29617
29587
|
if (lookahead != 0 &&
|
|
29618
|
-
lookahead != '\n'
|
|
29619
|
-
lookahead != 0x17f &&
|
|
29620
|
-
lookahead != 0x212a) ADVANCE(1667);
|
|
29588
|
+
lookahead != '\n') ADVANCE(1667);
|
|
29621
29589
|
END_STATE();
|
|
29622
29590
|
case 1522:
|
|
29623
29591
|
ACCEPT_TOKEN(anon_sym_POUND_SEMI);
|
|
@@ -29625,16 +29593,12 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
29625
29593
|
case 1523:
|
|
29626
29594
|
ACCEPT_TOKEN(anon_sym_POUND_SEMI);
|
|
29627
29595
|
if (lookahead == '"') ADVANCE(77);
|
|
29628
|
-
if (lookahead != 0
|
|
29629
|
-
lookahead != 0x17f &&
|
|
29630
|
-
lookahead != 0x212a) ADVANCE(1418);
|
|
29596
|
+
if (lookahead != 0) ADVANCE(1418);
|
|
29631
29597
|
END_STATE();
|
|
29632
29598
|
case 1524:
|
|
29633
29599
|
ACCEPT_TOKEN(anon_sym_POUND_SEMI);
|
|
29634
29600
|
if (lookahead != 0 &&
|
|
29635
|
-
lookahead != '\n'
|
|
29636
|
-
lookahead != 0x17f &&
|
|
29637
|
-
lookahead != 0x212a) ADVANCE(1667);
|
|
29601
|
+
lookahead != '\n') ADVANCE(1667);
|
|
29638
29602
|
END_STATE();
|
|
29639
29603
|
case 1525:
|
|
29640
29604
|
ACCEPT_TOKEN(anon_sym_SEMI);
|
|
@@ -29642,16 +29606,12 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
29642
29606
|
case 1526:
|
|
29643
29607
|
ACCEPT_TOKEN(anon_sym_SEMI);
|
|
29644
29608
|
if (lookahead == '"') ADVANCE(77);
|
|
29645
|
-
if (lookahead != 0
|
|
29646
|
-
lookahead != 0x17f &&
|
|
29647
|
-
lookahead != 0x212a) ADVANCE(1418);
|
|
29609
|
+
if (lookahead != 0) ADVANCE(1418);
|
|
29648
29610
|
END_STATE();
|
|
29649
29611
|
case 1527:
|
|
29650
29612
|
ACCEPT_TOKEN(anon_sym_SEMI);
|
|
29651
29613
|
if (lookahead != 0 &&
|
|
29652
|
-
lookahead != '\n'
|
|
29653
|
-
lookahead != 0x17f &&
|
|
29654
|
-
lookahead != 0x212a) ADVANCE(1667);
|
|
29614
|
+
lookahead != '\n') ADVANCE(1667);
|
|
29655
29615
|
END_STATE();
|
|
29656
29616
|
case 1528:
|
|
29657
29617
|
ACCEPT_TOKEN(anon_sym_POUND_POUND_SEMI);
|
|
@@ -29659,16 +29619,12 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
29659
29619
|
case 1529:
|
|
29660
29620
|
ACCEPT_TOKEN(anon_sym_POUND_POUND_SEMI);
|
|
29661
29621
|
if (lookahead == '"') ADVANCE(77);
|
|
29662
|
-
if (lookahead != 0
|
|
29663
|
-
lookahead != 0x17f &&
|
|
29664
|
-
lookahead != 0x212a) ADVANCE(1418);
|
|
29622
|
+
if (lookahead != 0) ADVANCE(1418);
|
|
29665
29623
|
END_STATE();
|
|
29666
29624
|
case 1530:
|
|
29667
29625
|
ACCEPT_TOKEN(anon_sym_POUND_POUND_SEMI);
|
|
29668
29626
|
if (lookahead != 0 &&
|
|
29669
|
-
lookahead != '\n'
|
|
29670
|
-
lookahead != 0x17f &&
|
|
29671
|
-
lookahead != 0x212a) ADVANCE(1667);
|
|
29627
|
+
lookahead != '\n') ADVANCE(1667);
|
|
29672
29628
|
END_STATE();
|
|
29673
29629
|
case 1531:
|
|
29674
29630
|
ACCEPT_TOKEN(anon_sym_SLASH_STAR);
|
|
@@ -29676,16 +29632,12 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
29676
29632
|
case 1532:
|
|
29677
29633
|
ACCEPT_TOKEN(anon_sym_SLASH_STAR);
|
|
29678
29634
|
if (lookahead == '"') ADVANCE(77);
|
|
29679
|
-
if (lookahead != 0
|
|
29680
|
-
lookahead != 0x17f &&
|
|
29681
|
-
lookahead != 0x212a) ADVANCE(1418);
|
|
29635
|
+
if (lookahead != 0) ADVANCE(1418);
|
|
29682
29636
|
END_STATE();
|
|
29683
29637
|
case 1533:
|
|
29684
29638
|
ACCEPT_TOKEN(anon_sym_SLASH_STAR);
|
|
29685
29639
|
if (lookahead != 0 &&
|
|
29686
|
-
lookahead != '\n'
|
|
29687
|
-
lookahead != 0x17f &&
|
|
29688
|
-
lookahead != 0x212a) ADVANCE(1667);
|
|
29640
|
+
lookahead != '\n') ADVANCE(1667);
|
|
29689
29641
|
END_STATE();
|
|
29690
29642
|
case 1534:
|
|
29691
29643
|
ACCEPT_TOKEN(anon_sym_STAR_SLASH);
|
|
@@ -30203,42 +30155,32 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
30203
30155
|
if (lookahead == '/') ADVANCE(1665);
|
|
30204
30156
|
if (lookahead == ';') ADVANCE(1527);
|
|
30205
30157
|
if (lookahead != 0 &&
|
|
30206
|
-
lookahead != '\n'
|
|
30207
|
-
lookahead != 0x17f &&
|
|
30208
|
-
lookahead != 0x212a) ADVANCE(1667);
|
|
30158
|
+
lookahead != '\n') ADVANCE(1667);
|
|
30209
30159
|
END_STATE();
|
|
30210
30160
|
case 1664:
|
|
30211
30161
|
ACCEPT_TOKEN(aux_sym_macro_value_line_token2);
|
|
30212
30162
|
if (lookahead == '#') ADVANCE(1666);
|
|
30213
30163
|
if (lookahead == ';') ADVANCE(1524);
|
|
30214
30164
|
if (lookahead != 0 &&
|
|
30215
|
-
lookahead != '\n'
|
|
30216
|
-
lookahead != 0x17f &&
|
|
30217
|
-
lookahead != 0x212a) ADVANCE(1667);
|
|
30165
|
+
lookahead != '\n') ADVANCE(1667);
|
|
30218
30166
|
END_STATE();
|
|
30219
30167
|
case 1665:
|
|
30220
30168
|
ACCEPT_TOKEN(aux_sym_macro_value_line_token2);
|
|
30221
30169
|
if (lookahead == '*') ADVANCE(1533);
|
|
30222
30170
|
if (lookahead == '/') ADVANCE(1521);
|
|
30223
30171
|
if (lookahead != 0 &&
|
|
30224
|
-
lookahead != '\n'
|
|
30225
|
-
lookahead != 0x17f &&
|
|
30226
|
-
lookahead != 0x212a) ADVANCE(1667);
|
|
30172
|
+
lookahead != '\n') ADVANCE(1667);
|
|
30227
30173
|
END_STATE();
|
|
30228
30174
|
case 1666:
|
|
30229
30175
|
ACCEPT_TOKEN(aux_sym_macro_value_line_token2);
|
|
30230
30176
|
if (lookahead == ';') ADVANCE(1530);
|
|
30231
30177
|
if (lookahead != 0 &&
|
|
30232
|
-
lookahead != '\n'
|
|
30233
|
-
lookahead != 0x17f &&
|
|
30234
|
-
lookahead != 0x212a) ADVANCE(1667);
|
|
30178
|
+
lookahead != '\n') ADVANCE(1667);
|
|
30235
30179
|
END_STATE();
|
|
30236
30180
|
case 1667:
|
|
30237
30181
|
ACCEPT_TOKEN(aux_sym_macro_value_line_token2);
|
|
30238
30182
|
if (lookahead != 0 &&
|
|
30239
|
-
lookahead != '\n'
|
|
30240
|
-
lookahead != 0x17f &&
|
|
30241
|
-
lookahead != 0x212a) ADVANCE(1667);
|
|
30183
|
+
lookahead != '\n') ADVANCE(1667);
|
|
30242
30184
|
END_STATE();
|
|
30243
30185
|
case 1668:
|
|
30244
30186
|
ACCEPT_TOKEN(aux_sym_mnemonic_name_token1);
|
|
@@ -964162,7 +964104,7 @@ TS_PUBLIC const TSLanguage *tree_sitter_objectscript_core(void) {
|
|
|
964162
964104
|
.metadata = {
|
|
964163
964105
|
.major_version = 1,
|
|
964164
964106
|
.minor_version = 9,
|
|
964165
|
-
.patch_version =
|
|
964107
|
+
.patch_version = 16,
|
|
964166
964108
|
},
|
|
964167
964109
|
};
|
|
964168
964110
|
return &language;
|
package/core/src/scanner.c
CHANGED
|
@@ -21,12 +21,13 @@ unsigned tree_sitter_objectscript_core_external_scanner_serialize(
|
|
|
21
21
|
struct ObjectScript_Core_Scanner *s = (struct ObjectScript_Core_Scanner *)payload;
|
|
22
22
|
|
|
23
23
|
unsigned i = 0;
|
|
24
|
-
const unsigned char version =
|
|
24
|
+
const unsigned char version = 2;
|
|
25
25
|
unsigned char mlen = (unsigned char)(s->marker_buffer_len);
|
|
26
26
|
|
|
27
|
-
// Ensure we never overrun TREE_SITTER_SERIALIZATION_BUFFER_SIZE (usually 1024)
|
|
27
|
+
// Ensure we never overrun TREE_SITTER_SERIALIZATION_BUFFER_SIZE (usually 1024).
|
|
28
28
|
// Worst-case here: 1 + 1 + 1 + 30*4 = 123 bytes.
|
|
29
29
|
buffer[i++] = (char)version;
|
|
30
|
+
buffer[i++] = s->pending_dotted_block_end ? 1 : 0;
|
|
30
31
|
buffer[i++] = (char)mlen;
|
|
31
32
|
|
|
32
33
|
for (int j = 0; j < s->marker_buffer_len; j++) {
|
|
@@ -48,17 +49,26 @@ void tree_sitter_objectscript_core_external_scanner_deserialize(
|
|
|
48
49
|
void *payload, const char *buffer, unsigned length) {
|
|
49
50
|
struct ObjectScript_Core_Scanner *s = (struct ObjectScript_Core_Scanner *)payload;
|
|
50
51
|
|
|
51
|
-
// Reset to clean defaults first
|
|
52
52
|
s->marker_buffer_len = 0;
|
|
53
|
+
s->pending_dotted_block_end = false;
|
|
53
54
|
|
|
54
55
|
if (!buffer || length == 0) return;
|
|
55
56
|
|
|
56
57
|
unsigned i = 0;
|
|
57
58
|
unsigned char version = (unsigned char)buffer[i++];
|
|
58
|
-
if (version != 1 || i >= length) return;
|
|
59
|
-
|
|
60
59
|
if (i >= length) return;
|
|
61
|
-
|
|
60
|
+
|
|
61
|
+
unsigned char mlen = 0;
|
|
62
|
+
if (version == 1) {
|
|
63
|
+
mlen = (unsigned char)buffer[i++];
|
|
64
|
+
} else if (version == 2) {
|
|
65
|
+
s->pending_dotted_block_end = buffer[i++] != 0;
|
|
66
|
+
if (i >= length) return;
|
|
67
|
+
mlen = (unsigned char)buffer[i++];
|
|
68
|
+
} else {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
|
|
62
72
|
if (mlen > MARKER_BUFFER_MAX_LEN) mlen = MARKER_BUFFER_MAX_LEN;
|
|
63
73
|
|
|
64
74
|
int j = 0;
|
package/expr/src/parser.c
CHANGED
|
@@ -2284,9 +2284,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
2284
2284
|
lookahead == ' ') ADVANCE(876);
|
|
2285
2285
|
if (lookahead != 0 &&
|
|
2286
2286
|
lookahead != '*' &&
|
|
2287
|
-
lookahead != ':'
|
|
2288
|
-
lookahead != 0x17f &&
|
|
2289
|
-
lookahead != 0x212a) ADVANCE(875);
|
|
2287
|
+
lookahead != ':') ADVANCE(875);
|
|
2290
2288
|
END_STATE();
|
|
2291
2289
|
case 3:
|
|
2292
2290
|
ADVANCE_MAP(
|
|
@@ -2597,9 +2595,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
2597
2595
|
END_STATE();
|
|
2598
2596
|
case 15:
|
|
2599
2597
|
if (lookahead == '"') ADVANCE(981);
|
|
2600
|
-
if (lookahead != 0
|
|
2601
|
-
lookahead != 0x17f &&
|
|
2602
|
-
lookahead != 0x212a) ADVANCE(15);
|
|
2598
|
+
if (lookahead != 0) ADVANCE(15);
|
|
2603
2599
|
END_STATE();
|
|
2604
2600
|
case 16:
|
|
2605
2601
|
ADVANCE_MAP(
|
|
@@ -2655,9 +2651,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
2655
2651
|
if (lookahead == '"') ADVANCE(984);
|
|
2656
2652
|
if (lookahead == '\\') ADVANCE(159);
|
|
2657
2653
|
if (lookahead != 0 &&
|
|
2658
|
-
lookahead != '\n'
|
|
2659
|
-
lookahead != 0x17f &&
|
|
2660
|
-
lookahead != 0x212a) ADVANCE(18);
|
|
2654
|
+
lookahead != '\n') ADVANCE(18);
|
|
2661
2655
|
END_STATE();
|
|
2662
2656
|
case 19:
|
|
2663
2657
|
if (lookahead == '"') ADVANCE(874);
|
|
@@ -2725,25 +2719,19 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
2725
2719
|
if (lookahead == '"') ADVANCE(825);
|
|
2726
2720
|
if (lookahead != 0 &&
|
|
2727
2721
|
lookahead != '\n' &&
|
|
2728
|
-
lookahead != '\r'
|
|
2729
|
-
lookahead != 0x17f &&
|
|
2730
|
-
lookahead != 0x212a) ADVANCE(25);
|
|
2722
|
+
lookahead != '\r') ADVANCE(25);
|
|
2731
2723
|
END_STATE();
|
|
2732
2724
|
case 26:
|
|
2733
2725
|
if (lookahead == '"') ADVANCE(29);
|
|
2734
2726
|
if (lookahead != 0 &&
|
|
2735
2727
|
lookahead != '\n' &&
|
|
2736
|
-
lookahead != '\r'
|
|
2737
|
-
lookahead != 0x17f &&
|
|
2738
|
-
lookahead != 0x212a) ADVANCE(26);
|
|
2728
|
+
lookahead != '\r') ADVANCE(26);
|
|
2739
2729
|
END_STATE();
|
|
2740
2730
|
case 27:
|
|
2741
2731
|
if (lookahead == '"') ADVANCE(40);
|
|
2742
2732
|
if (lookahead != 0 &&
|
|
2743
2733
|
lookahead != '\n' &&
|
|
2744
|
-
lookahead != '\r'
|
|
2745
|
-
lookahead != 0x17f &&
|
|
2746
|
-
lookahead != 0x212a) ADVANCE(27);
|
|
2734
|
+
lookahead != '\r') ADVANCE(27);
|
|
2747
2735
|
END_STATE();
|
|
2748
2736
|
case 28:
|
|
2749
2737
|
if (lookahead == '"') ADVANCE(882);
|
|
@@ -2804,9 +2792,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
2804
2792
|
if (lookahead == '"') ADVANCE(35);
|
|
2805
2793
|
if (lookahead != 0 &&
|
|
2806
2794
|
lookahead != '\n' &&
|
|
2807
|
-
lookahead != '\r'
|
|
2808
|
-
lookahead != 0x17f &&
|
|
2809
|
-
lookahead != 0x212a) ADVANCE(34);
|
|
2795
|
+
lookahead != '\r') ADVANCE(34);
|
|
2810
2796
|
END_STATE();
|
|
2811
2797
|
case 35:
|
|
2812
2798
|
if (lookahead == '"') ADVANCE(34);
|
|
@@ -7652,9 +7638,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
7652
7638
|
if (lookahead == '"') ADVANCE(984);
|
|
7653
7639
|
if (lookahead == '\\') ADVANCE(159);
|
|
7654
7640
|
if (lookahead != 0 &&
|
|
7655
|
-
lookahead != '\n'
|
|
7656
|
-
lookahead != 0x17f &&
|
|
7657
|
-
lookahead != 0x212a) ADVANCE(18);
|
|
7641
|
+
lookahead != '\n') ADVANCE(18);
|
|
7658
7642
|
END_STATE();
|
|
7659
7643
|
case 875:
|
|
7660
7644
|
ACCEPT_TOKEN(aux_sym_sql_field_identifier_token2);
|
|
@@ -7669,9 +7653,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
7669
7653
|
lookahead != '"' &&
|
|
7670
7654
|
lookahead != '*' &&
|
|
7671
7655
|
lookahead != ':' &&
|
|
7672
|
-
lookahead != '\\'
|
|
7673
|
-
lookahead != 0x17f &&
|
|
7674
|
-
lookahead != 0x212a) ADVANCE(875);
|
|
7656
|
+
lookahead != '\\') ADVANCE(875);
|
|
7675
7657
|
END_STATE();
|
|
7676
7658
|
case 877:
|
|
7677
7659
|
ACCEPT_TOKEN(aux_sym_sql_field_identifier_token3);
|
|
@@ -7690,16 +7672,12 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
|
|
|
7690
7672
|
if (lookahead == '"') ADVANCE(28);
|
|
7691
7673
|
if (('\t' <= lookahead && lookahead <= '\r') ||
|
|
7692
7674
|
lookahead == ' ') ADVANCE(881);
|
|
7693
|
-
if (lookahead != 0
|
|
7694
|
-
lookahead != 0x17f &&
|
|
7695
|
-
lookahead != 0x212a) ADVANCE(882);
|
|
7675
|
+
if (lookahead != 0) ADVANCE(882);
|
|
7696
7676
|
END_STATE();
|
|
7697
7677
|
case 882:
|
|
7698
7678
|
ACCEPT_TOKEN(aux_sym__quoted_member_name_token1);
|
|
7699
7679
|
if (lookahead == '"') ADVANCE(28);
|
|
7700
|
-
if (lookahead != 0
|
|
7701
|
-
lookahead != 0x17f &&
|
|
7702
|
-
lookahead != 0x212a) ADVANCE(882);
|
|
7680
|
+
if (lookahead != 0) ADVANCE(882);
|
|
7703
7681
|
END_STATE();
|
|
7704
7682
|
case 883:
|
|
7705
7683
|
ACCEPT_TOKEN(anon_sym_POUND2);
|
|
@@ -30210,7 +30188,7 @@ TS_PUBLIC const TSLanguage *tree_sitter_objectscript_expr(void) {
|
|
|
30210
30188
|
.metadata = {
|
|
30211
30189
|
.major_version = 1,
|
|
30212
30190
|
.minor_version = 9,
|
|
30213
|
-
.patch_version =
|
|
30191
|
+
.patch_version = 16,
|
|
30214
30192
|
},
|
|
30215
30193
|
};
|
|
30216
30194
|
return &language;
|