/* * Copyright OpenSearch Contributors * SPDX-License-Identifier: Apache-2.0 */ package org.opensearch.dataprepper.expression; import org.antlr.v4.runtime.CharStreams; import org.antlr.v4.runtime.CodePointCharStream; import org.antlr.v4.runtime.CommonTokenStream; import org.opensearch.dataprepper.expression.antlr.DataPrepperExpressionLexer; import org.opensearch.dataprepper.expression.antlr.DataPrepperExpressionParser; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Scope; import javax.inject.Named; @Named class ParseTreeParserConfiguration { @Bean @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public DataPrepperExpressionParser dataPrepperExpressionParser() { final ParserErrorListener errorListener = new ParserErrorListener(); final CodePointCharStream stream = CharStreams.fromString(""); final DataPrepperExpressionLexer lexer = new DataPrepperExpressionLexer(stream); lexer.addErrorListener(errorListener); final CommonTokenStream tokenStream = new CommonTokenStream(lexer); final DataPrepperExpressionParser parser = new DataPrepperExpressionParser(tokenStream); parser.addErrorListener(errorListener); return parser; } }