scan method

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

Implementation

@override
bool scan(
  LuaExternalScannerState state,
  TreeSitterExternalLexer lexer,
  List<bool> validSymbols,
) {
  if (_valid(validSymbols, 5) && _scanBlockEnd(state, lexer)) {
    _reset(state);
    lexer.setResultSymbol(symbols[5]);
    return true;
  }
  if (_valid(validSymbols, 4) && _scanBlockContent(state, lexer)) {
    lexer.setResultSymbol(symbols[4]);
    return true;
  }
  if (_valid(validSymbols, 2) &&
      state.endingChar == 0 &&
      _scanBlockEnd(state, lexer)) {
    _reset(state);
    lexer.setResultSymbol(symbols[2]);
    return true;
  }
  if (_valid(validSymbols, 1) && _scanCommentContent(state, lexer)) {
    lexer.setResultSymbol(symbols[1]);
    return true;
  }
  while (_isWhitespace(lexer.lookahead)) lexer.advance(skip: true);
  if (_valid(validSymbols, 3) && _scanBlockStart(state, lexer)) {
    lexer.setResultSymbol(symbols[3]);
    return true;
  }
  if (_valid(validSymbols, 0) && _scanCommentStart(state, lexer)) {
    lexer.setResultSymbol(symbols[0]);
    return true;
  }
  return false;
}