Skip to content

Commit 360059e

Browse files
committed
Avoid a '../' #include in test scanner
1 parent d56d1a3 commit 360059e

File tree

1 file changed

+40
-6
lines changed
  • test/fixtures/test_grammars/external_and_internal_anonymous_tokens

1 file changed

+40
-6
lines changed

test/fixtures/test_grammars/external_and_internal_anonymous_tokens/scanner.c

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
#include "../external_and_internal_tokens/scanner.c"
1+
#include <tree_sitter/parser.h>
2+
3+
enum {
4+
STRING,
5+
LINE_BREAK
6+
};
27

38
void *tree_sitter_external_and_internal_anonymous_tokens_external_scanner_create() {
49
return NULL;
@@ -28,9 +33,38 @@ bool tree_sitter_external_and_internal_anonymous_tokens_external_scanner_scan(
2833
TSLexer *lexer,
2934
const bool *whitelist
3035
) {
31-
return tree_sitter_external_and_internal_tokens_external_scanner_scan(
32-
payload,
33-
lexer,
34-
whitelist
35-
);
36+
// If a line-break is a valid lookahead token, only skip spaces.
37+
if (whitelist[LINE_BREAK]) {
38+
while (lexer->lookahead == ' ' || lexer->lookahead == '\r') {
39+
lexer->advance(lexer, true);
40+
}
41+
42+
if (lexer->lookahead == '\n') {
43+
lexer->advance(lexer, false);
44+
lexer->result_symbol = LINE_BREAK;
45+
return true;
46+
}
47+
}
48+
49+
// If a line-break is not a valid lookahead token, skip line breaks as well
50+
// as spaces.
51+
if (whitelist[STRING]) {
52+
while (lexer->lookahead == ' ' || lexer->lookahead == '\r' || lexer->lookahead == '\n') {
53+
lexer->advance(lexer, true);
54+
}
55+
56+
if (lexer->lookahead == '\'') {
57+
lexer->advance(lexer, false);
58+
59+
while (lexer->lookahead != '\'') {
60+
lexer->advance(lexer, false);
61+
}
62+
63+
lexer->advance(lexer, false);
64+
lexer->result_symbol = STRING;
65+
return true;
66+
}
67+
}
68+
69+
return false;
3670
}

0 commit comments

Comments
 (0)