Skip to content

Commit d845b84

Browse files
committed
⬆️ tree-sitter-cli
1 parent 3bc62ad commit d845b84

File tree

5 files changed

+105
-102
lines changed

5 files changed

+105
-102
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"author": "Ashi Krishnan <queerviolet@github.com>",
1111
"license": "MIT",
1212
"dependencies": {
13-
"nan": "^2.10.0"
13+
"nan": "^2.14.0"
1414
},
1515
"devDependencies": {
1616
"tree-sitter-cli": "^0.15.6"

src/binding.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,17 @@ namespace {
1010

1111
NAN_METHOD(New) {}
1212

13-
void Init(Handle<Object> exports, Handle<Object> module) {
13+
void Init(Local<Object> exports, Local<Object> module) {
1414
Local<FunctionTemplate> tpl = Nan::New<FunctionTemplate>(New);
1515
tpl->SetClassName(Nan::New("Language").ToLocalChecked());
1616
tpl->InstanceTemplate()->SetInternalFieldCount(1);
1717

18-
Local<Function> constructor = tpl->GetFunction();
18+
Local<Function> constructor = Nan::GetFunction(tpl).ToLocalChecked();
1919
Local<Object> instance = constructor->NewInstance(Nan::GetCurrentContext()).ToLocalChecked();
2020
Nan::SetInternalFieldPointer(instance, 0, tree_sitter_regex());
2121

22-
instance->Set(Nan::New("name").ToLocalChecked(), Nan::New("regex").ToLocalChecked());
23-
module->Set(Nan::New("exports").ToLocalChecked(), instance);
22+
Nan::Set(instance, Nan::New("name").ToLocalChecked(), Nan::New("regex").ToLocalChecked());
23+
Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance);
2424
}
2525

2626
NODE_MODULE(tree_sitter_regex_binding, Init)

src/node-types.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
"fields": {},
8686
"children": {
8787
"multiple": true,
88-
"required": false,
88+
"required": true,
8989
"types": [
9090
{
9191
"type": "character_class_escape",

src/parser.c

Lines changed: 96 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -426,9 +426,10 @@ static TSSymbol ts_alias_sequences[9][MAX_ALIAS_SEQUENCE_LENGTH] = {
426426

427427
static bool ts_lex(TSLexer *lexer, TSStateId state) {
428428
START_LEXER();
429+
eof = lookahead == 0;
429430
switch (state) {
430431
case 0:
431-
if (lookahead == 0) ADVANCE(12);
432+
if (eof) ADVANCE(12);
432433
if (lookahead == '\n') SKIP(0)
433434
if (lookahead == '!') ADVANCE(21);
434435
if (lookahead == '$') ADVANCE(16);
@@ -443,7 +444,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
443444
if (lookahead == '>') ADVANCE(35);
444445
if (lookahead == '?') ADVANCE(38);
445446
if (lookahead == '[') ADVANCE(26);
446-
if (lookahead == '\\') ADVANCE(8);
447+
if (lookahead == '\\') ADVANCE(7);
447448
if (lookahead == ']') ADVANCE(27);
448449
if (lookahead == '^') ADVANCE(15);
449450
if (lookahead == '{') ADVANCE(40);
@@ -452,44 +453,25 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
452453
if (lookahead != 0) ADVANCE(25);
453454
END_STATE();
454455
case 1:
455-
if (lookahead == 0) ADVANCE(12);
456-
if (lookahead == '\n') SKIP(1)
457-
if (lookahead == '$') ADVANCE(16);
458-
if (lookahead == '(') ADVANCE(33);
459-
if (lookahead == ')') ADVANCE(24);
460-
if (lookahead == '*') ADVANCE(37);
461-
if (lookahead == '+') ADVANCE(39);
462-
if (lookahead == '.') ADVANCE(14);
463-
if (lookahead == '?') ADVANCE(38);
464-
if (lookahead == '[') ADVANCE(26);
465-
if (lookahead == '\\') ADVANCE(10);
466-
if (lookahead == '^') ADVANCE(15);
467-
if (lookahead == '{') ADVANCE(40);
468-
if (lookahead == '|') ADVANCE(13);
469-
if (lookahead != 0 &&
470-
lookahead != ']' &&
471-
lookahead != '}') ADVANCE(25);
472-
END_STATE();
473-
case 2:
474456
if (lookahead == '\n') ADVANCE(31);
475457
if (lookahead == '-') ADVANCE(28);
476-
if (lookahead == '\\') ADVANCE(9);
458+
if (lookahead == '\\') ADVANCE(8);
477459
if (lookahead == ']') ADVANCE(27);
478460
if (lookahead == '^') ADVANCE(15);
479461
if (lookahead != 0) ADVANCE(30);
480462
END_STATE();
481-
case 3:
463+
case 2:
482464
if (lookahead == '\n') ADVANCE(32);
483465
if (lookahead == '-') ADVANCE(28);
484-
if (lookahead == '\\') ADVANCE(9);
466+
if (lookahead == '\\') ADVANCE(8);
485467
if (lookahead == ']') ADVANCE(27);
486468
if (lookahead != 0) ADVANCE(30);
487469
END_STATE();
488-
case 4:
489-
if (lookahead == '\n') SKIP(4)
470+
case 3:
471+
if (lookahead == '\n') SKIP(3)
490472
if (lookahead == '!') ADVANCE(21);
491473
if (lookahead == ',') ADVANCE(41);
492-
if (lookahead == '<') ADVANCE(7);
474+
if (lookahead == '<') ADVANCE(6);
493475
if (lookahead == '=') ADVANCE(20);
494476
if (lookahead == '>') ADVANCE(35);
495477
if (lookahead == '}') ADVANCE(42);
@@ -498,21 +480,21 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
498480
lookahead == '_' ||
499481
('a' <= lookahead && lookahead <= 'z')) ADVANCE(47);
500482
END_STATE();
501-
case 5:
502-
if (lookahead == '\n') SKIP(5)
483+
case 4:
484+
if (lookahead == '\n') SKIP(4)
503485
if (('0' <= lookahead && lookahead <= '9') ||
504486
('A' <= lookahead && lookahead <= 'Z') ||
505487
('a' <= lookahead && lookahead <= 'z')) ADVANCE(52);
506488
END_STATE();
507-
case 6:
508-
if (lookahead == '\n') SKIP(6)
489+
case 5:
490+
if (lookahead == '\n') SKIP(5)
509491
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(53);
510492
END_STATE();
511-
case 7:
493+
case 6:
512494
if (lookahead == '!') ADVANCE(23);
513495
if (lookahead == '=') ADVANCE(22);
514496
END_STATE();
515-
case 8:
497+
case 7:
516498
if (lookahead == '-') ADVANCE(29);
517499
if (lookahead == 'B') ADVANCE(18);
518500
if (lookahead == 'b') ADVANCE(17);
@@ -532,10 +514,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
532514
lookahead == 'd' ||
533515
lookahead == 's' ||
534516
lookahead == 'w') ADVANCE(45);
535-
if (('1' <= lookahead && lookahead <= '9')) ADVANCE(11);
517+
if (('1' <= lookahead && lookahead <= '9')) ADVANCE(10);
536518
if (lookahead != 0) ADVANCE(50);
537519
END_STATE();
538-
case 9:
520+
case 8:
539521
if (lookahead == '-') ADVANCE(29);
540522
if (lookahead == 'c') ADVANCE(51);
541523
if (lookahead == 'P' ||
@@ -556,7 +538,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
556538
(lookahead < '1' || '9' < lookahead) &&
557539
lookahead != 'k') ADVANCE(50);
558540
END_STATE();
559-
case 10:
541+
case 9:
560542
if (lookahead == 'B') ADVANCE(18);
561543
if (lookahead == 'b') ADVANCE(17);
562544
if (lookahead == 'c') ADVANCE(51);
@@ -575,12 +557,31 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
575557
lookahead == 'd' ||
576558
lookahead == 's' ||
577559
lookahead == 'w') ADVANCE(45);
578-
if (('1' <= lookahead && lookahead <= '9')) ADVANCE(11);
560+
if (('1' <= lookahead && lookahead <= '9')) ADVANCE(10);
579561
if (lookahead != 0) ADVANCE(50);
580562
END_STATE();
581-
case 11:
563+
case 10:
582564
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(44);
583565
END_STATE();
566+
case 11:
567+
if (eof) ADVANCE(12);
568+
if (lookahead == '\n') SKIP(11)
569+
if (lookahead == '$') ADVANCE(16);
570+
if (lookahead == '(') ADVANCE(33);
571+
if (lookahead == ')') ADVANCE(24);
572+
if (lookahead == '*') ADVANCE(37);
573+
if (lookahead == '+') ADVANCE(39);
574+
if (lookahead == '.') ADVANCE(14);
575+
if (lookahead == '?') ADVANCE(38);
576+
if (lookahead == '[') ADVANCE(26);
577+
if (lookahead == '\\') ADVANCE(9);
578+
if (lookahead == '^') ADVANCE(15);
579+
if (lookahead == '{') ADVANCE(40);
580+
if (lookahead == '|') ADVANCE(13);
581+
if (lookahead != 0 &&
582+
lookahead != ']' &&
583+
lookahead != '}') ADVANCE(25);
584+
END_STATE();
584585
case 12:
585586
ACCEPT_TOKEN(ts_builtin_sym_end);
586587
END_STATE();
@@ -739,76 +740,76 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
739740

740741
static TSLexMode ts_lex_modes[STATE_COUNT] = {
741742
[0] = {.lex_state = 0},
742-
[1] = {.lex_state = 1},
743-
[2] = {.lex_state = 1},
744-
[3] = {.lex_state = 1},
745-
[4] = {.lex_state = 1},
746-
[5] = {.lex_state = 1},
747-
[6] = {.lex_state = 1},
748-
[7] = {.lex_state = 1},
749-
[8] = {.lex_state = 1},
750-
[9] = {.lex_state = 1},
751-
[10] = {.lex_state = 1},
752-
[11] = {.lex_state = 1},
753-
[12] = {.lex_state = 1},
754-
[13] = {.lex_state = 1},
755-
[14] = {.lex_state = 1},
756-
[15] = {.lex_state = 1},
757-
[16] = {.lex_state = 1},
758-
[17] = {.lex_state = 1},
759-
[18] = {.lex_state = 1},
760-
[19] = {.lex_state = 1},
761-
[20] = {.lex_state = 1},
762-
[21] = {.lex_state = 1},
763-
[22] = {.lex_state = 1},
764-
[23] = {.lex_state = 1},
765-
[24] = {.lex_state = 1},
766-
[25] = {.lex_state = 1},
767-
[26] = {.lex_state = 1},
768-
[27] = {.lex_state = 1},
769-
[28] = {.lex_state = 1},
770-
[29] = {.lex_state = 1},
771-
[30] = {.lex_state = 1},
772-
[31] = {.lex_state = 1},
773-
[32] = {.lex_state = 2},
774-
[33] = {.lex_state = 3},
775-
[34] = {.lex_state = 3},
776-
[35] = {.lex_state = 3},
777-
[36] = {.lex_state = 3},
778-
[37] = {.lex_state = 3},
779-
[38] = {.lex_state = 3},
780-
[39] = {.lex_state = 3},
781-
[40] = {.lex_state = 3},
782-
[41] = {.lex_state = 3},
783-
[42] = {.lex_state = 3},
784-
[43] = {.lex_state = 3},
785-
[44] = {.lex_state = 3},
786-
[45] = {.lex_state = 3},
787-
[46] = {.lex_state = 3},
743+
[1] = {.lex_state = 11},
744+
[2] = {.lex_state = 11},
745+
[3] = {.lex_state = 11},
746+
[4] = {.lex_state = 11},
747+
[5] = {.lex_state = 11},
748+
[6] = {.lex_state = 11},
749+
[7] = {.lex_state = 11},
750+
[8] = {.lex_state = 11},
751+
[9] = {.lex_state = 11},
752+
[10] = {.lex_state = 11},
753+
[11] = {.lex_state = 11},
754+
[12] = {.lex_state = 11},
755+
[13] = {.lex_state = 11},
756+
[14] = {.lex_state = 11},
757+
[15] = {.lex_state = 11},
758+
[16] = {.lex_state = 11},
759+
[17] = {.lex_state = 11},
760+
[18] = {.lex_state = 11},
761+
[19] = {.lex_state = 11},
762+
[20] = {.lex_state = 11},
763+
[21] = {.lex_state = 11},
764+
[22] = {.lex_state = 11},
765+
[23] = {.lex_state = 11},
766+
[24] = {.lex_state = 11},
767+
[25] = {.lex_state = 11},
768+
[26] = {.lex_state = 11},
769+
[27] = {.lex_state = 11},
770+
[28] = {.lex_state = 11},
771+
[29] = {.lex_state = 11},
772+
[30] = {.lex_state = 11},
773+
[31] = {.lex_state = 11},
774+
[32] = {.lex_state = 1},
775+
[33] = {.lex_state = 2},
776+
[34] = {.lex_state = 2},
777+
[35] = {.lex_state = 2},
778+
[36] = {.lex_state = 2},
779+
[37] = {.lex_state = 2},
780+
[38] = {.lex_state = 2},
781+
[39] = {.lex_state = 2},
782+
[40] = {.lex_state = 2},
783+
[41] = {.lex_state = 2},
784+
[42] = {.lex_state = 2},
785+
[43] = {.lex_state = 2},
786+
[44] = {.lex_state = 2},
787+
[45] = {.lex_state = 2},
788+
[46] = {.lex_state = 2},
788789
[47] = {.lex_state = 0},
789790
[48] = {.lex_state = 0},
790791
[49] = {.lex_state = 0},
791792
[50] = {.lex_state = 0},
792-
[51] = {.lex_state = 4},
793+
[51] = {.lex_state = 3},
793794
[52] = {.lex_state = 0},
794-
[53] = {.lex_state = 4},
795-
[54] = {.lex_state = 4},
796-
[55] = {.lex_state = 4},
795+
[53] = {.lex_state = 3},
796+
[54] = {.lex_state = 3},
797+
[55] = {.lex_state = 3},
797798
[56] = {.lex_state = 0},
798-
[57] = {.lex_state = 4},
799-
[58] = {.lex_state = 4},
800-
[59] = {.lex_state = 5},
799+
[57] = {.lex_state = 3},
800+
[58] = {.lex_state = 3},
801+
[59] = {.lex_state = 4},
801802
[60] = {.lex_state = 0},
802803
[61] = {.lex_state = 0},
803804
[62] = {.lex_state = 0},
804-
[63] = {.lex_state = 5},
805+
[63] = {.lex_state = 4},
805806
[64] = {.lex_state = 0},
806-
[65] = {.lex_state = 6},
807-
[66] = {.lex_state = 6},
807+
[65] = {.lex_state = 5},
808+
[66] = {.lex_state = 5},
808809
[67] = {.lex_state = 0},
809810
[68] = {.lex_state = 0},
810811
[69] = {.lex_state = 0},
811-
[70] = {.lex_state = 4},
812+
[70] = {.lex_state = 3},
812813
[71] = {.lex_state = 0},
813814
[72] = {.lex_state = 0},
814815
[73] = {.lex_state = 0},

src/tree_sitter/parser.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ struct TSLexer {
4545
void (*advance)(TSLexer *, bool);
4646
void (*mark_end)(TSLexer *);
4747
uint32_t (*get_column)(TSLexer *);
48-
bool (*is_at_included_range_start)(TSLexer *);
48+
bool (*is_at_included_range_start)(const TSLexer *);
49+
bool (*eof)(const TSLexer *);
4950
};
5051

5152
typedef enum {
@@ -123,6 +124,7 @@ struct TSLanguage {
123124
#define START_LEXER() \
124125
bool result = false; \
125126
bool skip = false; \
127+
bool eof = false; \
126128
int32_t lookahead; \
127129
goto start; \
128130
next_state: \

0 commit comments

Comments
 (0)