scan method
bool
scan(
- StatelessExternalScannerState state,
- TreeSitterExternalLexer lexer,
- List<
bool> validSymbols
override
Implementation
@override
bool scan(
StatelessExternalScannerState state,
TreeSitterExternalLexer lexer,
List<bool> validSymbols,
) {
while (_isWhitespace(lexer.lookahead)) lexer.advance(skip: true);
if (_valid(validSymbols, 1) ||
_valid(validSymbols, 2) ||
_valid(validSymbols, 3)) {
if (_scanNumber(lexer) || _scanBoz(lexer)) return true;
}
lexer.setResultSymbol(symbols[0]);
if (lexer.lookahead != 0x26) return false;
lexer.advance(skip: false);
if (lexer.lookahead == 0x0d) {
lexer.advance(skip: false);
if (lexer.lookahead == 0x0a) lexer.advance(skip: false);
} else {
if (lexer.lookahead != 0x0a) return false;
lexer.advance(skip: false);
}
while (_isWhitespace(lexer.lookahead)) lexer.advance(skip: false);
if (lexer.lookahead == 0x26) lexer.advance(skip: false);
return true;
}