Example usage for org.antlr.v4.runtime CommonTokenStream CommonTokenStream

List of usage examples for org.antlr.v4.runtime CommonTokenStream CommonTokenStream

Introduction

In this page you can find the example usage for org.antlr.v4.runtime CommonTokenStream CommonTokenStream.

Prototype

public CommonTokenStream(TokenSource tokenSource) 

Source Link

Document

Constructs a new CommonTokenStream using the specified token source and the default token channel ( Token#DEFAULT_CHANNEL ).

Usage

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);
}