@@ -33,34 +33,34 @@ static bool consume_if(TSLexer *lexer, const int32_t character)
33
33
const char SQ_STRING_DELIMITER = '\'' ;
34
34
const char DQ_STRING_DELIMITER = '"' ;
35
35
36
- struct ScannerState {
37
- unsigned short started ;
36
+ enum StartedToken
37
+ {
38
+ SHORT_COMMENT = 1 ,
39
+ SHORT_SQ_STRING ,
40
+ SHORT_DQ_STRING ,
41
+ LONG_COMMENT ,
42
+ LONG_STRING ,
43
+ };
44
+
45
+ struct ScannerState
46
+ {
47
+ enum StartedToken started ;
38
48
unsigned int depth ;
39
49
};
40
50
41
51
void * tree_sitter_lua_external_scanner_create ()
42
52
{
43
- struct ScannerState * state = malloc (sizeof (struct ScannerState ));
44
- return state ;
53
+ return malloc (sizeof (struct ScannerState ));
45
54
}
46
55
47
56
void tree_sitter_lua_external_scanner_destroy (void * payload )
48
57
{
49
58
free (payload );
50
59
}
51
60
52
- enum StartedToken
53
- {
54
- SHORT_COMMENT = 1 ,
55
- SHORT_SQ_STRING ,
56
- SHORT_DQ_STRING ,
57
- LONG_COMMENT ,
58
- LONG_STRING ,
59
- };
60
-
61
61
unsigned int tree_sitter_lua_external_scanner_serialize (void * payload , char * buffer )
62
62
{
63
- struct ScannerState * state = ( struct ScannerState * ) payload ;
63
+ struct ScannerState * state = payload ;
64
64
buffer [0 ] = state -> started ;
65
65
buffer [1 ] = state -> depth ;
66
66
return 2 ;
@@ -70,7 +70,7 @@ void tree_sitter_lua_external_scanner_deserialize(void *payload, const char *buf
70
70
{
71
71
if (length == 2 )
72
72
{
73
- struct ScannerState * state = ( struct ScannerState * ) payload ;
73
+ struct ScannerState * state = payload ;
74
74
state -> started = buffer [0 ];
75
75
state -> depth = buffer [1 ];
76
76
}
@@ -87,9 +87,8 @@ static unsigned int get_depth(TSLexer *lexer)
87
87
return current_depth ;
88
88
}
89
89
90
- static bool scan_depth (TSLexer * lexer , struct ScannerState * state )
90
+ static bool scan_depth (TSLexer * lexer , unsigned int remaining_depth )
91
91
{
92
- unsigned int remaining_depth = state -> depth ;
93
92
while (remaining_depth > 0 && consume_if (lexer , '=' ))
94
93
{
95
94
remaining_depth -= 1 ;
@@ -100,7 +99,7 @@ static bool scan_depth(TSLexer *lexer, struct ScannerState * state)
100
99
101
100
bool tree_sitter_lua_external_scanner_scan (void * payload , TSLexer * lexer , const bool * valid_symbols )
102
101
{
103
- struct ScannerState * state = ( struct ScannerState * ) payload ;
102
+ struct ScannerState * state = payload ;
104
103
switch (state -> started )
105
104
{
106
105
case SHORT_COMMENT :
@@ -178,7 +177,7 @@ bool tree_sitter_lua_external_scanner_scan(void *payload, TSLexer *lexer, const
178
177
// try to match the long comment's/string's end (]=*])
179
178
if (consume_if (lexer , ']' ))
180
179
{
181
- if (scan_depth (lexer , state ) && consume_if (lexer , ']' ))
180
+ if (scan_depth (lexer , state -> depth ) && consume_if (lexer , ']' ))
182
181
{
183
182
state -> started = 0 ;
184
183
state -> depth = 0 ;
@@ -210,7 +209,7 @@ bool tree_sitter_lua_external_scanner_scan(void *payload, TSLexer *lexer, const
210
209
lexer -> mark_end (lexer );
211
210
if (consume_if (lexer , ']' ))
212
211
{
213
- if (scan_depth (lexer , state ))
212
+ if (scan_depth (lexer , state -> depth ))
214
213
{
215
214
if (consume_if (lexer , ']' ))
216
215
{
0 commit comments