Example usage for org.antlr.v4.runtime.tree ParseTreeWalker DEFAULT

List of usage examples for org.antlr.v4.runtime.tree ParseTreeWalker DEFAULT

Introduction

In this page you can find the example usage for org.antlr.v4.runtime.tree ParseTreeWalker DEFAULT.

Prototype

ParseTreeWalker DEFAULT

To view the source code for org.antlr.v4.runtime.tree ParseTreeWalker DEFAULT.

Click Source Link

Usage

From source file:at.plechinger.scrapeql.parser.QueryParser.java

License:Open Source License

public Query parse(String query) {
    ScrapeQLLexer lexer = new ScrapeQLLexer(new ANTLRInputStream(query));

    ScrapeQLParser parser = new ScrapeQLParser(new CommonTokenStream(lexer));

    ParseTree tree = parser.parse();/*from   ww  w  . j a  va 2 s .  c  o m*/

    QueryParseTreeListener listener = new QueryParseTreeListener();

    ParseTreeWalker.DEFAULT.walk(listener, tree);

    Query resultQuery = listener.getQuery();

    return resultQuery;
}

From source file:carbon.compiler.CarbonCompiler.java

License:BSD License

public void processCommandLineTargets() {
    List<ParseTree> targets = getTrees();

    //analysis here.
    ParseTreeWalker.DEFAULT.walk(new SymbolTableListener(), targets.get(0));
}

From source file:com.cisco.yangide.core.parser.YangParserUtil.java

License:Open Source License

/**
 * Parses YANG file contents and returns AST tree as {@link Module}
 *
 * @param chars file contents//  w w w . ja  v a  2  s  .  com
 * @return AST Tree
 */
public static Module parseYangFile(char[] chars) {
    YangContext yangContext = parseYangSource(chars, null);
    YangParserModelListener modelListener = new YangParserModelListener();
    ParseTreeWalker.DEFAULT.walk(modelListener, yangContext);
    return modelListener.getModule();
}

From source file:com.cisco.yangide.core.parser.YangParserUtil.java

License:Open Source License

/**
 * @param chars/*from  w  w w.  jav  a  2  s  .co  m*/
 * @param project
 * @param validationListener
 * @return
 */
public static Module parseYangFile(char[] chars, IProject project, IYangValidationListener validationListener) {
    YangContext yangContext = parseYangSource(chars, validationListener);
    if (validationListener != null) {
        validateYangContext(yangContext, validationListener);
    }
    YangParserModelListener modelListener = new YangParserModelListener();
    ParseTreeWalker.DEFAULT.walk(modelListener, yangContext);
    Module module = modelListener.getModule();
    if (validationListener != null) {
        new SemanticValidations(validationListener, project, module).validate();
    }
    return module;
}

From source file:com.cisco.yangide.core.parser.YangParserUtil.java

License:Open Source License

public static void validateYangFile(char[] content, IProject project,
        IYangValidationListener validationListener) {
    YangContext parseTree = parseYangSource(content, validationListener);
    validateYangContext(parseTree, validationListener);

    YangParserModelListener modelListener = new YangParserModelListener();
    ParseTreeWalker.DEFAULT.walk(modelListener, parseTree);
    new SemanticValidations(validationListener, project, modelListener.getModule()).validate();
}

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();// w  w w .j ava2s  .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.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;//  ww w  .j  a  va2 s .  c  o m
        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.pascalgn.jiracli.parser.CommandReference.java

License:Apache License

public static List<CommandReference> parseCommandReferences(String str) {
    CommandLineLexer lexer = new CommandLineLexer(new ANTLRInputStream(str));
    CommandLineParser parser = new CommandLineParser(new CommonTokenStream(lexer));

    lexer.removeErrorListeners();//from w w  w  .j av  a2  s.  c o m
    parser.removeErrorListeners();

    CommandLineContext commandLine = parser.commandLine();

    final List<CommandReference> commands = new ArrayList<CommandReference>();

    final StringBuilder name = new StringBuilder();
    final List<String> arguments = new ArrayList<String>();

    class Listener extends CommandLineParserBaseListener {
        @Override
        public void enterCommandName(CommandNameContext ctx) {
            if (name.length() == 0) {
                name.append(ctx.getText());
            } else {
                List<String> args = new ArrayList<String>(arguments);
                CommandReference command = new CommandReference(name.toString(), args);
                commands.add(command);
                name.setLength(0);
                name.append(ctx.getText());
                arguments.clear();
            }
        }

        @Override
        public void enterArgument(ArgumentContext ctx) {
            String arg = ctx.getText();
            if (arg.startsWith("'") && arg.endsWith("'")) {
                arguments.add(unescape(arg.substring(1, arg.length() - 1)));
            } else if (arg.startsWith("\"") && arg.endsWith("\"")) {
                arguments.add(unescape(arg.substring(1, arg.length() - 1)));
            } else {
                arguments.add(unescape(arg));
            }
        }

        @Override
        public void visitErrorNode(ErrorNode node) {
            throw new IllegalStateException("Unexpected content: " + node.getText());
        }
    }

    ParseTreeWalker.DEFAULT.walk(new Listener(), commandLine);

    if (name.length() > 0) {
        CommandReference command = new CommandReference(name.toString(), arguments);
        commands.add(command);
    }

    return commands;
}

From source file:com.goldmansachs.kata2go.tools.parser.JavaSourceParser.java

License:Apache License

public void parse(String javaSource) {
    CharStream stream = CharStreams.fromString(javaSource);
    JavaLexer lexer = new JavaLexer(stream);
    CommonTokenStream tokens = new CommonTokenStream(lexer);
    JavaParser parser = new JavaParser(tokens);
    JavaParser.CompilationUnitContext tree = parser.compilationUnit();

    this.extractor = new Listener(javaSource);
    ParseTreeWalker.DEFAULT.walk(extractor, tree);
}

From source file:com.paypal.digraph.parser.GraphParser.java

License:BSD License

public GraphParser(InputStream is) throws GraphParserException {
    DOTLexer lexer = null;/*  w w w .ja va2  s  .  co m*/
    DOTParser parser = null;
    try {
        lexer = new DOTLexer(new ANTLRInputStream(is));
        lexer.addErrorListener(new ErrorListener());

        parser = new DOTParser(new CommonTokenStream(lexer));
        parser.setErrorHandler(new ExceptionErrorStrategy());
        parser.addErrorListener(new ErrorListener());

        ParseTree tree = parser.graph();
        ParseTreeWalker.DEFAULT.walk(new NodeListener(), tree);
        ParseTreeWalker.DEFAULT.walk(new EdgeListener(), tree);
    } catch (Throwable t) {
        if (mErrMsg != null)
            throw new GraphParserException(mErrMsg, t);
        if (lexer != null) {
            mErrMsg = "at line " + lexer.getLine() + ":" + lexer.getCharPositionInLine();
            throw new GraphParserException(mErrMsg, t);
        }
        throw new GraphParserException(t);
    }

    if (mErrMsg != null)
        throw new GraphParserException(mErrMsg);
}