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 (lexer.lookahead != 0x23 &&
validSymbols.isNotEmpty &&
validSymbols[0] &&
_scanBracketArgument(lexer)) {
lexer.setResultSymbol(symbols[0]);
return true;
}
if (lexer.lookahead != 0x23 ||
validSymbols.length < 3 ||
(!validSymbols[1] && !validSymbols[2])) {
return false;
}
lexer.advance(skip: false);
if (_scanBracketArgument(lexer)) {
lexer.setResultSymbol(symbols[1]);
return true;
}
while (lexer.lookahead != 0x0a && lexer.lookahead != 0) {
lexer.advance(skip: false);
}
lexer.setResultSymbol(symbols[2]);
return true;
}