package com.sap.ide.cts.parser.incremental.antlr; import org.antlr.runtime.Lexer; import com.sap.furcas.runtime.parser.ParserFactory; import com.sap.furcas.runtime.parser.impl.ObservableInjectingParser; import com.sap.furcas.runtime.parser.textblocks.ITextBlocksTokenStream; public abstract class ANTLRParserFactory<P extends ObservableInjectingParser, L extends Lexer> implements ParserFactory<P, L> { @Override public ITextBlocksTokenStream createIncrementalTokenStream(Object incrementalLexer) { if (incrementalLexer instanceof ANTLRIncrementalLexerAdapter) { return new ANTLRIncrementalTokenStream((ANTLRIncrementalLexerAdapter) incrementalLexer); } else { throw new IllegalArgumentException( "ANTLRIncrementalTokenStream can only be instantiated with an ANTLRIncrementalLexerAdapter, but got: " + incrementalLexer); } } }