scan method
bool
scan(
- RustExternalScannerState state,
- TreeSitterExternalLexer lexer,
- List<
bool> validSymbols
override
Implementation
@override
bool scan(
RustExternalScannerState state,
TreeSitterExternalLexer lexer,
List<bool> validSymbols,
) {
if (_valid(validSymbols, RustExternalToken.errorSentinel)) return false;
if (_valid(validSymbols, RustExternalToken.blockCommentContent) ||
_valid(validSymbols, RustExternalToken.blockInnerDocMarker) ||
_valid(validSymbols, RustExternalToken.blockOuterDocMarker)) {
return _processBlockComment(lexer, validSymbols);
}
if (_valid(validSymbols, RustExternalToken.stringContent) &&
!_valid(validSymbols, RustExternalToken.floatLiteral)) {
return _processString(lexer);
}
if (_valid(validSymbols, RustExternalToken.lineDocContent)) {
return _processLineDocContent(lexer);
}
while (_isWhitespace(lexer.lookahead)) {
lexer.advance(skip: true);
}
if (_valid(validSymbols, RustExternalToken.rawStringLiteralStart) &&
(lexer.lookahead == 0x72 ||
lexer.lookahead == 0x62 ||
lexer.lookahead == 0x63)) {
return _scanRawStringStart(state, lexer);
}
if (_valid(validSymbols, RustExternalToken.rawStringLiteralContent)) {
return _scanRawStringContent(state, lexer);
}
if (_valid(validSymbols, RustExternalToken.rawStringLiteralEnd) &&
lexer.lookahead == 0x22) {
return _scanRawStringEnd(state, lexer);
}
if (_valid(validSymbols, RustExternalToken.floatLiteral) &&
_isDigit(lexer.lookahead)) {
return _processFloatLiteral(lexer);
}
return false;
}