@Override public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { eexLexer.start(buffer, startOffset, endOffset, initialState & 0xFFFF); if (eexLexer.getTokenType() == ELIXIR) { elixirLexer.start(buffer, startOffset, endOffset); } else { elixirLexer.start(buffer, startOffset, endOffset); } }
protected void start(@NotNull CharSequence charSequence) { lexer.start(charSequence); }
private void restoreElixirPosition(@Nullable LexerPosition elixirPosition) { if (elixirPosition != null) { elixirLexer.start(getBufferSequence(), eexLexer.getTokenStart(), eexLexer.getTokenEnd()); elixirLexer.restore(elixirPosition); } }
public void advance() { if (eexLexer.getTokenType() == ELIXIR) { elixirLexer.advance(); if (elixirLexer.getTokenType() == null) { eexLexer.advance(); } } else { eexLexer.advance(); if (eexLexer.getTokenType() == ELIXIR) { // start automatically does equivalent of `advance` since `elixirLexer` is also a look-ahead lexer elixirLexer.start(getBufferSequence(), eexLexer.getTokenStart(), eexLexer.getTokenEnd()); } } }
@Override public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { if (initialState == 0 && myTryCatchEnabled) { initialState = -1; } myMainLexer.start(buffer, startOffset, endOffset, initialState); myTokenStart = myTokenEnd = startOffset; myTokenType = null; myIsSublexing = false; }
@Override public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { int newStartOffset = (startOffset == 0) ? prefix.length() : startOffset; int newEndOffset = (endOffset == buffer.length()) ? endOffset - suffix.length() : endOffset; CharSequence newBuffer = buffer.subSequence(newStartOffset, newEndOffset); myDelegate.start(newBuffer, 0, newBuffer.length(), initialState); this.afterPrefix = false; this.delegateEOF = false; this.afterEOF = false; } }
private void initTokenListAndCharSequence(Lexer lexer) { lexer.start(processedText);