发布时间:2025-12-09 11:47:22 浏览次数:2
import org.antlr.v4.runtime.CommonTokenStream; //导入依赖的package包/类/** * @throws InvalidQueryException if the given query contains invalid characters or is incomplete */public SqlGrammarParser.SelectStatementContext parse(String query) { log.trace("About to parse [{}]", query); long now = currentTimeMillis(); CharStream input = CharStreams.fromString(query); SqlGrammarLexer lexer = new SqlGrammarLexer(input); TokenStream tokenStream = new CommonTokenStream(lexer); SqlGrammarParser parser = new SqlGrammarParser(tokenStream); parser.removeErrorListeners(); parser.addErrorListener(new RaiseExceptionErrorListener()); SqlGrammarParser.SelectStatementContext result = parser.selectStatement(); log.trace("Successfully parsed [{}] into [{}] in [{}ms]", query, result.toStringTree(parser), currentTimeMillis() - now); return result;} import org.antlr.v4.runtime.CommonTokenStream; //导入依赖的package包/类@Overridepublic SortedMap<Integer, String> parseString(String fieldString) { CharStream is = CharStreams.fromString(fieldString); DrawGrammarLexer lex = new DrawGrammarLexer(is); CommonTokenStream tokens = new CommonTokenStream(lex); DrawGrammarParser parser = new DrawGrammarParser(tokens); palette = Palette.makeDefaultPalette("DarkSpectrum"); final SortedMap<Integer, String> resultMap; try { resultMap = parser.root().map; } catch (RecognitionException | NullPointerException | StringIndexOutOfBoundsException | RasterFormatException re) { //Something wrong with the parsing do not update. return null; } return resultMap;} import org.antlr.v4.runtime.CommonTokenStream; //导入依赖的package包/类/** * @param args the command line arguments * @throws java.io.IOException * @throws java.net.URISyntaxException */public static void main(String[] args) throws IOException, URISyntaxException { final String entryPoint; final URL res; switch (args.length) { case 2: res = Paths.get(args[0]).toUri().toURL(); entryPoint = args[1]; break; default: System.err.println("Supply two parameters in the following order:\n- file name of the main function\n- name of the main function\n\nFor example: hello.ct main:argc:argv"); return; } final CharStream inp = CharStreams.fromStream(res.openStream()); final GrammarLexer lex = new GrammarLexer(inp); final TokenStream toks = new CommonTokenStream(lex); final GrammarParser parser = new GrammarParser(toks); System.out.println(new Translator(res.toURI()).generate(parser.program(), entryPoint));} import org.antlr.v4.runtime.CommonTokenStream; //导入依赖的package包/类private BooleanExpListNode generateAST(String code) { FormalPropertyDescriptionLexer l = new FormalPropertyDescriptionLexer(new ANTLRInputStream(code)); CommonTokenStream ts = new CommonTokenStream(l); FormalPropertyDescriptionParser p = new FormalPropertyDescriptionParser(ts); BooleanExpScope declaredVars = new BooleanExpScope(); preAndPostConditionsDescription.getSymbolicVariableList().forEach((v) -> { declaredVars.addTypeForId(v.getId(), v.getInternalTypeContainer()); }); return translator.generateFromSyntaxTree( p.booleanExpList(), electionDescription.getInputType().getType(), electionDescription.getOutputType().getType(), declaredVars);}