List of usage examples for org.antlr.v4.runtime CommonTokenStream CommonTokenStream
public CommonTokenStream(TokenSource tokenSource)
From source file:com.fizzed.rocker.model.WithStatement.java
License:Apache License
private static List<String> parseWithStatement(final String value, final String templatePath) { final Lexer lexer = new WithBlockLexer(new ANTLRInputStream(value)); lexer.removeErrorListeners();//from w w w .j a va 2 s .com lexer.addErrorListener(new DescriptiveErrorListener()); final CommonTokenStream in; try { in = new CommonTokenStream(lexer); final WithBlockParser parser = new WithBlockParser(in); parser.removeErrorListeners(); parser.addErrorListener(new DescriptiveErrorListener()); final WithBlockParser.StartContext start = parser.start(); WITH_BLOCK_PARSER_LISTENER.clear(); ParseTreeWalker.DEFAULT.walk(WITH_BLOCK_PARSER_LISTENER, start); return WITH_BLOCK_PARSER_LISTENER.getArguments(); } catch (ParserRuntimeException e) { throw TemplateParser.unwrapParserRuntimeException(templatePath, e); } }
From source file:com.gigaspaces.persistency.datasource.MongoQueryFactory.java
License:Open Source License
private static String parse(String sql) { ANTLRInputStream charstream = new ANTLRInputStream(sql); SQL2MongoLexer lexer = new SQL2MongoLexer(charstream); TokenStream tokenStream = new CommonTokenStream(lexer); SQL2MongoParser parser = new SQL2MongoParser(tokenStream); SQL2MongoBaseVisitor<ParseContext> visitor = new SQL2MongoBaseVisitor<ParseContext>(); parser.parse().accept(visitor);/* w ww. j a v a 2s . c o m*/ return visitor.getQuery().toString(); }
From source file:com.github.artyomcool.dante.QueriesGenerator.java
License:Open Source License
public GeneratedQuery generate() throws IOException { GeneratedDao generatedDao = getDao(); TypeName dao = generatedDao.getDao(); boolean isInterface; switch (queries.getKind()) { case INTERFACE: isInterface = true;//from w w w .ja v a2 s .c om break; case CLASS: isInterface = false; break; default: throw new IllegalArgumentException("Class or interface expected, found " + queries); } TypeName queriesTypeName = TypeName.get(queries.asType()); TypeSpec.Builder spec = TypeSpec.classBuilder(queries.getSimpleName() + "_Impl_") .addOriginatingElement(queries).addModifiers(Modifier.PUBLIC) .addField(dao, "dao", Modifier.PRIVATE, Modifier.FINAL); if (isInterface) { spec.addSuperinterface(queriesTypeName); } else { spec.superclass(queriesTypeName); } spec.addMethod(MethodSpec.constructorBuilder().addModifiers(Modifier.PUBLIC).addParameter(dao, "dao") .addStatement("this.dao = $L", "dao").build()); methodsIn(queries.getEnclosedElements()).forEach(e -> { Query query = e.getAnnotation(Query.class); String where = query.where(); final List<TextReplacement> replacements = new ArrayList<>(); final SortedSet<ParamReplacement> paramReplacements = new TreeSet<>(); SQLiteLexer tokenSource = new SQLiteLexer(new ANTLRInputStream(where)); TokenStream input = new CommonTokenStream(tokenSource); SQLiteParser parser = new SQLiteParser(input); ParseTreeWalker.DEFAULT.walk(new SQLiteBaseListener() { private String referenceName; private GeneratedDao getGeneratedDao(String referenceName) { GeneratedDao dao = generatedEntities.get(referenceName); if (dao == null) { String aPackage = getPackage(queries); if (!aPackage.isEmpty()) { dao = generatedEntities.get(aPackage + "." + referenceName); } } return dao; } @Override public void enterTable_name(SQLiteParser.Table_nameContext ctx) { referenceName = ctx.getText(); String currentTableName = this.referenceName; GeneratedDao dao = getGeneratedDao(currentTableName); if (dao == null) { generator.codeGenError(e, "Can't find an dao with name " + currentTableName); return; } String tableName = dao.getTableName(); replacements.add(new TextReplacement(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), tableName)); } @Override public void exitFull_column_name(SQLiteParser.Full_column_nameContext ctx) { referenceName = null; } @Override public void enterColumn_name(SQLiteParser.Column_nameContext ctx) { String referenceName = this.referenceName == null ? getEntityClassName() : this.referenceName; GeneratedDao dao = getGeneratedDao(referenceName); if (dao == null) { generator.codeGenError(e, "Can't find the dao with name " + referenceName); return; } try { String columnName = dao.getColumnName(ctx.getText()); replacements.add(new TextReplacement(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), columnName)); } catch (NoSuchElementException ex) { generator.codeGenError(e, "Can't find a column " + ctx.getText() + " in dao with name " + referenceName); } } @Override public void enterBind_parameter(SQLiteParser.Bind_parameterContext ctx) { replacements.add( new TextReplacement(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), "?")); String text = ctx.bind_name().getText(); if (text.startsWith("[") && text.endsWith("]")) { text = text.substring(1, text.length() - 1); } paramReplacements.add(new ParamReplacement(ctx.getStart().getStartIndex(), text)); } }, parser.parse()); StringBuilder builder = new StringBuilder(); int start = 0; for (TextReplacement replacement : replacements) { builder.append(where.substring(start, replacement.start)); builder.append(replacement.replacement); start = replacement.stop + 1; } builder.append(where.substring(start)); //TODO remove Query annotation MethodSpec.Builder statementBuilder = MethodSpec.overriding(e) .addStatement("final String where = $S", builder).addCode("\n") .addStatement("final String[] params = new String[$L]", paramReplacements.size()); int i = 0; for (ParamReplacement replacement : paramReplacements) { statementBuilder.addStatement("params[$L] = String.valueOf($L)", i++, replacement.paramName); } MethodSpec methodSpec = statementBuilder.addCode("\n").addCode(queryReturn(e.getReturnType())).build(); spec.addMethod(methodSpec); }); TypeSpec typeSpec = spec.build(); JavaFile file = JavaFile.builder(getPackage(queries), typeSpec).indent(" ").build(); file.writeTo(generator.getProcessingEnv().getFiler()); return new GeneratedQuery(this, typeSpec); }
From source file:com.github.beardlybread.orgestrator.org.Orgestrator.java
License:Open Source License
public boolean add(InputStream inStream, String path, int type) { if (this.find(path, type) == null) { try (InputStreamReader r = new InputStreamReader(inStream)) { ParseTree tree;//from w w w.j a v a2 s . co m OrgLexer lexer = new OrgLexer(null); ANTLRInputStream ais = new ANTLRInputStream(r); lexer.setInputStream(ais); CommonTokenStream tokens = new CommonTokenStream(lexer); tree = (new OrgParser(tokens).file()); OrgFile file = new OrgFile(path, type); ParseTreeWalker walker = new ParseTreeWalker(); walker.walk(file, tree); this.data.add(file); } catch (IOException e) { this.err = e; return false; } return true; } return false; }
From source file:com.github.bennyl.jml.javax.processor.JavaxProcessor.java
private void generateCode(File file) throws IOException { try (FileInputStream fin = new FileInputStream(file)) { ANTLRInputStream input = new ANTLRInputStream(fin); JavaXLexer lexer = new JavaXLexer(input); CommonTokenStream tokens = new CommonTokenStream(lexer); JavaXParser parser = new JavaXParser(tokens); ParseTree tree = parser.compilationUnit(); // parse; start at prog //CodeGenerationVisitor visitor = new CodeGenerationVisitor(processingEnv); SpoonASTParser visitor = new SpoonASTParser(); CompilationUnit result = (CompilationUnit) visitor.visit(tree); System.out.println("got: \n" + visitor.toString(result)); }/*from w ww .j a v a 2 s .c o m*/ }
From source file:com.github.blindpirate.gogradle.core.dependency.produce.GoImportExtractor.java
License:Apache License
private List<String> extract(String sourceFileContent) { GolangBuildInfoLexer lexer = new GolangBuildInfoLexer(new ANTLRInputStream(sourceFileContent)); CommonTokenStream tokens = new CommonTokenStream(lexer); GolangBuildInfoParser parser = new GolangBuildInfoParser(tokens); ParseTree tree = parser.sourceFile(); ParseTreeWalker walker = new ParseTreeWalker(); ImportListener listener = new ImportListener(); walker.walk(listener, tree);/*from ww w . j a v a 2 s. co m*/ if (shouldBeIncluded(listener)) { return listener.importPaths; } else { return Collections.emptyList(); } }
From source file:com.github.drrb.rust.netbeans.parsing.NetbeansRustParser.java
License:Open Source License
private static RustParser createParser(Snapshot snapshot) { CharStream input = new ANTLRInputStream(snapshot.getText().toString()); Lexer lexer = new RustLexer(input); CommonTokenStream tokens = new CommonTokenStream(lexer); return new RustParser(tokens); }
From source file:com.github.gfx.android.orma.migration.sqliteparser.SQLiteParserUtils.java
License:Apache License
@NonNull public static SQLiteParser createParser(@NonNull String sql) { CharStream source = new ANTLRInputStream(sql); Lexer lexer = new SQLiteLexer(source); TokenStream tokenStream = new CommonTokenStream(lexer); SQLiteParser parser = new SQLiteParser(tokenStream); parser.setErrorHandler(new BailErrorStrategy()); return parser; }
From source file:com.github.haixing_hu.criteria.parser.SqlCriterionParser.java
License:Apache License
@Override public Criterion parse(final String input) throws ParsingException { final ANTLRInputStream is = new ANTLRInputStream(input); final ThrowExceptionErrorListener listener = new ThrowExceptionErrorListener(); final CriterionLexer lexer = new CriterionLexer(is); lexer.removeErrorListeners();/*w ww . j a va 2 s. c o m*/ lexer.addErrorListener(listener); final CommonTokenStream tokens = new CommonTokenStream(lexer); final CriterionParser parser = new CriterionParser(tokens); parser.removeErrorListeners(); parser.addErrorListener(listener); try { final ParseTree tree = parser.line().criterion(); final CriterionParsingVisitor visitor = new CriterionParsingVisitor(); final Criterion result = visitor.visit(tree); if (result == null) { throw new ParsingException(input, 0, "Failed to parse the SQL representation."); } return result; } catch (final AntlrParseException e) { throw new ParsingException(e.getInput(), e.getPosition(), e.getMessage()); } }
From source file:com.github.jknack.css.CSS.java
License:Apache License
public StyleSheet parse(final String content) { CssLexer lexer = new CssLexer(new ANTLRInputStream(content)); // lexer.removeErrorListeners(); if (!debug) { lexer.addErrorListener(new ErrorReporter()); }/* w w w . java 2 s .c o m*/ CommonTokenStream tokens = new CommonTokenStream(lexer); tokens.fill(); CssParser parser = new CssParser(tokens); // parser.setErrorHandler(new BailErrorStrategy()); // parser.removeParseListeners(); if (!debug) { parser.addErrorListener(new ErrorReporter()); } if (debug) { for (Token tok : tokens.getTokens()) { CommonToken ct = (CommonToken) tok; String[] tokenNames = lexer.getTokenNames(); int type = ct.getType(); System.out.println((type > 0 ? tokenNames[type] : "EOF") + "(" + ct.getText() + ")"); } } StyleSheetContext tree = parser.styleSheet(); if (debug) { System.out.println(tree.toStringTree(parser)); } CSSBuilder builder = new CSSBuilder(); return (StyleSheet) builder.visit(tree); }