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:nl.lxtreme.libtdl.TdlHelper.java

License:Apache License

/**
 * Returns a token stream based on this lexer.
 * /*  w w  w . j av a  2 s.c  o  m*/
 * @return a new {@link TokenStream} for this lexer.
 */
private TokenStream getTokenStream() {
    return new CommonTokenStream(m_lexer);
}

From source file:no.nb.nna.broprox.robotsparser.RobotsTxtParser.java

License:Apache License

public RobotsTxt parse(CharStream robotsStream) throws IOException {
    TokenSource tokenSource = new RobotstxtLexer(robotsStream);
    TokenStream tokens = new CommonTokenStream(tokenSource);
    RobotstxtParser parser = new RobotstxtParser(tokens);
    ParseTree p = parser.robotstxt();//from  w ww. j  a va 2  s .c  om
    ParseTreeWalker walker = new ParseTreeWalker();
    RobotsTxt robotsTxt = new RobotsTxt();
    walker.walk(new RobotsListener(robotsTxt), p);
    return robotsTxt;
}

From source file:no.nb.nna.broprox.robotsparser.UserAgentParser.java

License:Apache License

public String parse(String userAgent) {
    TokenSource tokenSource = new UseragentLexer(CharStreams.fromString(userAgent));
    TokenStream tokens = new CommonTokenStream(tokenSource);
    UseragentParser parser = new UseragentParser(tokens);
    ParseTree p = parser.prog();//from w ww  .j  a va 2s.c  o m
    ParseTreeWalker walker = new ParseTreeWalker();
    UserAgentListener listener = new UserAgentListener();
    walker.walk(listener, p);
    return listener.getBaseUserAgent();
}

From source file:no.sintef.bvr.constraints.bcl.Loader.java

License:LGPL

public static void main(String[] args) throws FileNotFoundException, IOException {
    CharStream input = new ANTLRInputStream(new FileInputStream("TestData/test2.bcl"));
    BCLLexer lexer = new BCLLexer(input);
    TokenStream tokens = new CommonTokenStream(lexer);
    BCLParser parser = new BCLParser(tokens);

    // Build BVR//from   w w  w  .j a  v a  2 s .co m
    SPLCABVRModel cm = new SPLCABVRModel();
    // ConfigurableUnit cu = buildExampleBVR(cm);
    BVRModel model = buildExampleBVR(cm);

    Variable minSpeed = BvrFactory.eINSTANCE.createVariable();
    // Variabletype minSpeedType =
    // bvrFactory.eINSTANCE.createVariabletype();
    minSpeed.setName("minSpeed");
    // minSpeed.setType(minSpeedType);
    // cu.getOwnedVSpec().add(minSpeed);
    model.getVariabilityModel().getVariable().add(minSpeed);

    // Build model
    RuleNode root = parser.constraint().getRuleContext();
    BCLConstraint c = BvrFactory.eINSTANCE.createBCLConstraint();

    BCLExpression e = new BCLBuilder().recurse((RuleNode) root.getChild(0), 0, model, true);
    c.getExpression().add(e);

    // Pretty Print
    String s = new BCLPrettyPrinter().prettyPrint(e);
    System.out.println(s);
}

From source file:no.sintef.bvr.tool.model.ConstraintFacade.java

License:LGPL

private RuleNode parseBCL(String s) {
    CharStream input = new ANTLRInputStream(s);
    BCLLexer lexer = new BCLLexer(input);
    TokenStream tokens = new CommonTokenStream(lexer);
    BCLParser parser = new BCLParser(tokens);
    RuleNode root = parser.constraint().getRuleContext();
    return root;//from w  w w  .  ja v a  2s . c om
}

From source file:no.ssb.vtl.script.VTLScriptEngine.java

License:Apache License

public VTLParser.StartContext parse(Reader reader, Consumer<VTLScriptException> errorConsumer)
        throws IOException {
    // TODO: Change to CharStreams.fromString() when #1977 makes it to release.
    VTLLexer lexer = new VTLLexer(new ANTLRInputStream(reader));
    VTLParser parser = new VTLParser(new CommonTokenStream(lexer));

    lexer.removeErrorListeners();// ww w. j  av a 2s  .  co m
    parser.removeErrorListeners();

    BaseErrorListener errorListener = new SyntaxErrorListener(errorConsumer);

    lexer.addErrorListener(errorListener);
    parser.addErrorListener(errorListener);

    return parser.start();
}

From source file:no.ssb.vtl.test.junit.GrammarRule.java

License:Apache License

/**
 * Parse an expression starting from the given <b>ANTLR rule</b>
 * <p>// w ww. ja  v a 2s.  c o m
 * In order to get the Rule, use the {@link #withRule(String)} method.
 *
 * @param expression the expression to parse.
 * @param rule       the rule to start from.
 *                   @param diagnostic {@link DiagnosticErrorListener} will be used if true.
 * @return the resulting parse tree.
 * @throws Exception if the expression failed to parse.
 */
public ParserRuleContext parse(String expression, Rule rule, boolean diagnostic) throws Exception {
    Multimap<Integer, String> messages = LinkedListMultimap.create();

    LexerInterpreter lexerInterpreter = grammar.createLexerInterpreter(new ANTLRInputStream(expression));
    GrammarParserInterpreter parserInterpreter = grammar
            .createGrammarParserInterpreter(new CommonTokenStream(lexerInterpreter));

    BaseErrorListener errorListener;
    if (diagnostic) {
        errorListener = new DiagnosticErrorListener();
    } else {
        errorListener = new ConsoleErrorListener();
    }

    BaseErrorListener ruleErrorReporter = new BaseErrorListener() {
        @Override
        public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line,
                int charPositionInLine, String msg, org.antlr.v4.runtime.RecognitionException e) {
            int startLine = line, stopLine = line;
            int startColumn = charPositionInLine, stopColumn = charPositionInLine;
            if (offendingSymbol instanceof Token) {
                Token symbol = (Token) offendingSymbol;
                int start = symbol.getStartIndex();
                int stop = symbol.getStopIndex();
                if (start >= 0 && stop >= 0) {
                    stopColumn = startColumn + (stop - start) + 1;
                }
            }

            messages.put(stopLine,
                    String.format("at [%4s:%6s]:\t%s (%s)\n", String.format("%d,%d", startLine, stopLine),
                            String.format("%d,%d", startColumn, stopColumn), msg,
                            Optional.ofNullable(e).map(ex -> ex.getClass().getSimpleName()).orElse("null")));
        }
    };

    parserInterpreter.setErrorHandler(new GrammarParserInterpreter.BailButConsumeErrorStrategy());
    lexerInterpreter.removeErrorListeners();
    parserInterpreter.removeErrorListeners();

    lexerInterpreter.addErrorListener(errorListener);
    parserInterpreter.addErrorListener(errorListener);
    lexerInterpreter.addErrorListener(ruleErrorReporter);
    parserInterpreter.addErrorListener(ruleErrorReporter);

    ParserRuleContext parse = parserInterpreter.parse(rule.index);

    if (!messages.isEmpty()) {

        StringBuilder expressionWithErrors = new StringBuilder();
        LineNumberReader expressionReader = new LineNumberReader(new StringReader(expression));
        String line;
        while ((line = expressionReader.readLine()) != null) {
            int lineNumber = expressionReader.getLineNumber();
            expressionWithErrors.append(String.format("\t%d:%s%n", lineNumber, line));
            if (messages.containsKey(lineNumber)) {
                expressionWithErrors.append(String.format("%n"));
                for (String message : messages.get(lineNumber)) {
                    expressionWithErrors.append(message);
                }
            }
        }
        throw new Exception(
                String.format("errors parsing expression:%n%n%s%n", expressionWithErrors.toString()));
    }

    return parse;
}

From source file:notaql.engines.csv.path.CSVInputPathParser.java

License:Apache License

@Override
public InputPath parse(String enginePath, boolean relative) {
    final NotaQL2CSVInLexer lexer = new NotaQL2CSVInLexer(new ANTLRInputStream(enginePath));
    final NotaQL2CSVInParser parser = new NotaQL2CSVInParser(new CommonTokenStream(lexer));

    parser.addErrorListener(new NotaQLErrorListener(parser));

    final NotaQL2CSVInParser.InputPathContext inputPathContext = parser.inputPath();

    final List<InputPathStep> steps = new LinkedList<>(
            new CSVInputPathVisitor(transformationParser, relative).visit(inputPathContext).getPathSteps());

    return new InputPath(relative, steps);
}

From source file:notaql.engines.csv.path.CSVOutputPathParser.java

License:Apache License

@Override
public OutputPath parse(String enginePath, boolean relative) {
    final NotaQL2CSVOutLexer lexer = new NotaQL2CSVOutLexer(new ANTLRInputStream(enginePath));
    final NotaQL2CSVOutParser parser = new NotaQL2CSVOutParser(new CommonTokenStream(lexer));

    parser.addErrorListener(new NotaQLErrorListener(parser));

    final NotaQL2CSVOutParser.OutputPathContext outputPathContext = parser.outputPath();

    return new CSVOutputPathVisitor(this.transformationParser, relative).visit(outputPathContext);
}

From source file:notaql.engines.hbase.parser.path.HBaseInputPathParser.java

License:Apache License

@Override
public InputPath parse(String enginePath, boolean relative) {
    final NotaQL2ColumnInLexer lexer = new NotaQL2ColumnInLexer(new ANTLRInputStream(enginePath));
    final NotaQL2ColumnInParser parser = new NotaQL2ColumnInParser(new CommonTokenStream(lexer));

    parser.addErrorListener(new NotaQLErrorListener(parser));

    final NotaQL2ColumnInParser.InputPathContext inputPathContext = parser.inputPath();

    final List<InputPathStep> steps = new LinkedList<>(
            new HBaseInputPathVisitor(transformationParser, relative).visit(inputPathContext).getPathSteps());

    return new InputPath(relative, steps);
}