scan method

  1. @override
bool scan(
  1. StatelessExternalScannerState state,
  2. TreeSitterExternalLexer lexer,
  3. List<bool> validSymbols
)
override

Implementation

@override
bool scan(
  StatelessExternalScannerState state,
  TreeSitterExternalLexer lexer,
  List<bool> validSymbols,
) {
  if (validSymbols.isEmpty || !validSymbols[0]) return false;
  lexer
    ..setResultSymbol(symbols[0])
    ..markEnd();
  while (true) {
    if (lexer.lookahead == 0 ||
        lexer.lookahead == 0x7d ||
        lexer.lookahead == 0x3b ||
        lexer.lookahead == 0x29 ||
        lexer.lookahead == 0x0a) {
      return true;
    }
    if (!_isWhitespace(lexer.lookahead)) return false;
    lexer.advance(skip: true);
  }
}