@@ -14,117 +14,114 @@ enum TokenType {
14
14
void * tree_sitter_dart_external_scanner_create () { return NULL ; }
15
15
void tree_sitter_dart_external_scanner_destroy (void * p ) {}
16
16
void tree_sitter_dart_external_scanner_reset (void * p ) {}
17
- unsigned tree_sitter_dart_external_scanner_serialize (void * p , char * buffer ) {
18
- return 0 ;
19
- }
20
- void tree_sitter_dart_external_scanner_deserialize (void * p , const char * b ,
21
- unsigned n ) {}
17
+ unsigned tree_sitter_dart_external_scanner_serialize (void * p , char * buffer ) { return 0 ; }
18
+ void tree_sitter_dart_external_scanner_deserialize (void * p , const char * b , unsigned n ) {}
22
19
23
20
static void advance (TSLexer * lexer ) { lexer -> advance (lexer , false); }
24
21
static void skip (TSLexer * lexer ) { lexer -> advance (lexer , true); }
25
22
26
23
static bool scan_multiline_comments (TSLexer * lexer ) {
27
24
28
- bool documentation_comment = false;
29
- advance (lexer );
30
- if (lexer -> lookahead != '*' )
31
- return false;
32
- advance (lexer );
33
- if (lexer -> lookahead == '*' )
34
- documentation_comment = true;
25
+ bool documentation_comment = false;
26
+ advance (lexer );
27
+ if (lexer -> lookahead != '*' ) return false;
28
+ advance (lexer );
29
+ if (lexer -> lookahead == '*' ) documentation_comment = true;
35
30
36
- bool after_star = false;
37
- unsigned nesting_depth = 1 ;
38
- for (;;) {
39
- switch (lexer -> lookahead ) {
40
- case '\0' :
41
- return false;
42
- case '*' :
43
- advance (lexer );
44
- after_star = true;
45
- break ;
46
- case '/' :
47
- if (after_star ) {
48
- advance (lexer );
49
- after_star = false;
50
- nesting_depth -- ;
51
- if (nesting_depth == 0 ) {
52
- if (!documentation_comment ) {
53
- lexer -> result_symbol = BLOCK_COMMENT ;
31
+ bool after_star = false;
32
+ unsigned nesting_depth = 1 ;
33
+ for (;;) {
34
+ switch (lexer -> lookahead ) {
35
+ case '\0' :
36
+ return false;
37
+ case '*' :
38
+ advance (lexer );
39
+ after_star = true;
40
+ break ;
41
+ case '/' :
42
+ if (after_star ) {
43
+ advance (lexer );
44
+ after_star = false;
45
+ nesting_depth -- ;
46
+ if (nesting_depth == 0 ) {
47
+ if (!documentation_comment ) {
48
+ lexer -> result_symbol = BLOCK_COMMENT ;
49
+ } else {
50
+ lexer -> result_symbol = DOCUMENTATION_BLOCK_COMMENT ;
51
+ }
52
+ return true;
53
+ }
54
54
} else {
55
- lexer -> result_symbol = DOCUMENTATION_BLOCK_COMMENT ;
55
+ advance (lexer );
56
+ after_star = false;
57
+ if (lexer -> lookahead == '*' ) {
58
+ nesting_depth ++ ;
59
+ advance (lexer );
60
+ }
56
61
}
57
- return true;
58
- }
59
- } else {
60
- advance (lexer );
61
- after_star = false;
62
- if (lexer -> lookahead == '*' ) {
63
- nesting_depth ++ ;
62
+ break ;
63
+ default :
64
64
advance (lexer );
65
- }
65
+ after_star = false;
66
+ break ;
66
67
}
67
- break ;
68
- default :
69
- advance (lexer );
70
- after_star = false;
71
- break ;
72
68
}
73
- }
74
69
return false;
75
70
}
76
71
72
+
77
73
static bool scan_templates (TSLexer * lexer , const bool * valid_symbols ) {
78
- if (valid_symbols [TEMPLATE_CHARS_DOUBLE ]) {
79
- lexer -> result_symbol = TEMPLATE_CHARS_DOUBLE ;
74
+ if (valid_symbols [TEMPLATE_CHARS_DOUBLE ]) {
75
+ lexer -> result_symbol = TEMPLATE_CHARS_DOUBLE ;
80
76
} else if (valid_symbols [TEMPLATE_CHARS_SINGLE ]) {
81
- lexer -> result_symbol = TEMPLATE_CHARS_SINGLE ;
77
+ lexer -> result_symbol = TEMPLATE_CHARS_SINGLE ;
82
78
} else if (valid_symbols [TEMPLATE_CHARS_SINGLE_SINGLE ]) {
83
- lexer -> result_symbol = TEMPLATE_CHARS_SINGLE_SINGLE ;
79
+ lexer -> result_symbol = TEMPLATE_CHARS_SINGLE_SINGLE ;
84
80
} else {
85
- lexer -> result_symbol = TEMPLATE_CHARS_DOUBLE_SINGLE ;
81
+ lexer -> result_symbol = TEMPLATE_CHARS_DOUBLE_SINGLE ;
86
82
}
87
83
for (bool has_content = false;; has_content = true) {
88
84
lexer -> mark_end (lexer );
89
85
switch (lexer -> lookahead ) {
90
- case '\'' :
91
- case '"' :
92
- return has_content ;
93
- case '\n' :
94
- if (valid_symbols [TEMPLATE_CHARS_DOUBLE_SINGLE ] ||
95
- valid_symbols [TEMPLATE_CHARS_SINGLE_SINGLE ])
96
- return false;
97
- advance (lexer );
98
- break ;
99
- case '\0' :
100
- return false;
101
- case '$' :
102
- return has_content ;
103
- case '\\' :
104
- if (valid_symbols [TEMPLATE_CHARS_RAW_SLASH ]) {
105
- lexer -> result_symbol = TEMPLATE_CHARS_RAW_SLASH ;
86
+ case '\'' :
87
+ case '"' :
88
+ return has_content ;
89
+ case '\n' :
90
+ if (valid_symbols [TEMPLATE_CHARS_DOUBLE_SINGLE ] || valid_symbols [TEMPLATE_CHARS_SINGLE_SINGLE ]) return false;
106
91
advance (lexer );
107
- } else {
92
+ break ;
93
+ case '\0' :
94
+ return false;
95
+ case '$' :
108
96
return has_content ;
109
- }
110
- break ;
111
- default :
112
- advance (lexer );
97
+ case '\\' :
98
+ if (valid_symbols [TEMPLATE_CHARS_RAW_SLASH ]) {
99
+ lexer -> result_symbol = TEMPLATE_CHARS_RAW_SLASH ;
100
+ advance (lexer );
101
+ } else {
102
+ return has_content ;
103
+ }
104
+ break ;
105
+ default :
106
+ advance (lexer );
113
107
}
114
108
}
115
109
return true;
116
110
}
117
111
112
+
113
+
118
114
bool tree_sitter_dart_external_scanner_scan (void * payload , TSLexer * lexer ,
119
- const bool * valid_symbols ) {
120
- if (valid_symbols [TEMPLATE_CHARS_DOUBLE ] ||
115
+ const bool * valid_symbols ) {
116
+ if (
117
+ valid_symbols [TEMPLATE_CHARS_DOUBLE ] ||
121
118
valid_symbols [TEMPLATE_CHARS_SINGLE ] ||
122
119
valid_symbols [TEMPLATE_CHARS_DOUBLE_SINGLE ] ||
123
- valid_symbols [TEMPLATE_CHARS_SINGLE_SINGLE ]) {
120
+ valid_symbols [TEMPLATE_CHARS_SINGLE_SINGLE ]
121
+ ) {
124
122
return scan_templates (lexer , valid_symbols );
125
123
}
126
- while (iswspace (lexer -> lookahead ))
127
- lexer -> advance (lexer , true);
124
+ while (iswspace (lexer -> lookahead )) lexer -> advance (lexer , true);
128
125
129
126
if (lexer -> lookahead == '/' ) {
130
127
return scan_multiline_comments (lexer );
0 commit comments