scan method
bool
scan(
- StatelessExternalScannerState state,
- TreeSitterExternalLexer lexer,
- List<
bool> validSymbols
override
Implementation
@override
bool scan(
StatelessExternalScannerState state,
TreeSitterExternalLexer lexer,
List<bool> validSymbols,
) {
while (lexer.lookahead == 0x20 || lexer.lookahead == 0x09) {
lexer.advance(skip: true);
}
if (lexer.lookahead == 0) {
lexer.setResultSymbol(symbols[0]);
return true;
}
if (lexer.lookahead != 0x0a) return false;
lexer.advance(skip: true);
if (lexer.lookahead != 0x20 && lexer.lookahead != 0x09) {
lexer.setResultSymbol(symbols[0]);
return true;
}
while (lexer.lookahead == 0x20 || lexer.lookahead == 0x09) {
lexer.advance(skip: true);
}
if (validSymbols.length > 1 && validSymbols[1] && lexer.lookahead == 0x2e) {
lexer.advance(skip: false);
lexer.setResultSymbol(symbols[1]);
return true;
}
return false;
}