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.github.jknack.handlebars.internal.HbsParserFactory.java

License:Apache License

/**
 * Creates a new {@link HbsParser}./*from   w ww.j a  va2 s  . c om*/
 *
 * @param lexer The {@link HbsLexer}.
 * @return A new {@link HbsParser}.
 */
private HbsParser newParser(final HbsLexer lexer) {
    return new HbsParser(new CommonTokenStream(lexer)) {
        @Override
        void setStart(final String start) {
            lexer.start = start;
        }

        @Override
        void setEnd(final String end) {
            lexer.end = end;
        }
    };
}

From source file:com.github.mariusdw.sqlsim.validator.sqlite.SqLiteValidator.java

License:Open Source License

@Override
public void validate(String query) throws ValidationException {
    SQLiteLexer lexer = new SQLiteLexer(new ANTLRInputStream(query));
    SQLiteParser parser = new SQLiteParser(new CommonTokenStream(lexer));
    List<String> errorStrs = new ArrayList<>(1);
    ANTLRErrorListener listener = new ANTLRErrorListener() {
        @Override/*  w ww  . j a v  a 2 s  .  co m*/
        public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line,
                int charPositionInLine, String msg, RecognitionException e) {

            String newMsg = "Error [line:" + line + "|char:" + charPositionInLine + "] " + msg;
            if (errorStrs.size() > 0) {
                newMsg += "\n" + errorStrs.get(0);
                errorStrs.set(0, newMsg);
            } else {
                errorStrs.add(newMsg);
            }

        }

        @Override
        public void reportAmbiguity(Parser parser, DFA dfa, int i, int i1, boolean bln, BitSet bitset,
                ATNConfigSet atncs) {
            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public void reportAttemptingFullContext(Parser parser, DFA dfa, int i, int i1, BitSet bitset,
                ATNConfigSet atncs) {
            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public void reportContextSensitivity(Parser parser, DFA dfa, int i, int i1, int i2,
                ATNConfigSet atncs) {
            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

    };
    parser.addErrorListener(listener);

    try {
        parser.parse();
        if (errorStrs.size() > 0) {
            throw new ValidationException("Validation error: " + errorStrs.get(0));
        }
    } catch (RecognitionException e) {
        throw new ValidationException("Validation error:", e);
    }
}

From source file:com.github.minlywang.dsl.calc.main.Calculator.java

License:MIT License

public static void main(String[] args) throws Exception {
    String inputFile = null;//from   w  w  w  . ja v  a2s . co  m
    if (args.length > 0)
        inputFile = args[0];
    InputStream is = System.in;
    if (inputFile != null)
        is = new FileInputStream(inputFile);
    else {
        printStatement();
    }
    ANTLRInputStream input = new ANTLRInputStream(is);
    CalcLexer lexer = new CalcLexer(input);
    CommonTokenStream tokens = new CommonTokenStream(lexer);
    CalcParser parser = new CalcParser(tokens);
    ParseTree tree = parser.compilationUnit(); // parse

    Evaluator eval = new Evaluator();
    eval.visit(tree);
}

From source file:com.github.odiszapc.nginxparser.NgxConfig.java

License:Apache License

public static NgxConfig readAntlr(InputStream in) throws IOException {
    ANTLRInputStream input = new ANTLRInputStream(in);
    NginxLexer lexer = new NginxLexer(input);
    CommonTokenStream tokens = new CommonTokenStream(lexer);
    NginxParser parser = new NginxParser(tokens);
    ParseTreeWalker walker = new ParseTreeWalker();

    ParseTree tree = parser.config(); // begin parsing at init rule
    NginxListenerImpl listener = new NginxListenerImpl();
    walker.walk(listener, tree);//w w w  .j av a2s.c o  m

    return listener.getResult();
}

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();/* w  w  w.j a  v a2s  .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.github.robozonky.strategy.natural.SideEffectFreeParser.java

License:Apache License

public static ParsedStrategy apply(final CharStream s) { // no refs from this method will be retained when it's over
    final NaturalLanguageStrategyLexer l = silence(new NaturalLanguageStrategyLexer(s));
    modifyInterpreter(l);//w  w  w .  j  a  v  a 2  s  . com
    final CommonTokenStream ts = new CommonTokenStream(l);
    final NaturalLanguageStrategyParser p = silence(new NaturalLanguageStrategyParser(ts));
    p.addErrorListener(ERROR_LISTENER);
    modifyInterpreter(p);
    return p.primaryExpression().result;
}

From source file:com.github.s4ke.moar.json.MoarJSONSerializer.java

License:Open Source License

private static CodePointSet buildFnFromSetExpression(String setExpression) {
    RegexLexer lexer = new RegexLexer(new ANTLRInputStream(setExpression));
    RegexParser parser = new RegexParser(new CommonTokenStream(lexer));
    parser.setBuildParseTree(true);//w ww .  ja  va  2s .  c o  m
    parser.getErrorListeners().clear();
    parser.addErrorListener(new BaseErrorListener() {
        @Override
        public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line,
                int charPositionInLine, String msg, RecognitionException e) {
            throw e;
        }
    });
    RegexParser.SetContext setContext = parser.set();
    if (parser.getNumberOfSyntaxErrors() > 0) {
        throw new IllegalArgumentException("malformed set expression: " + setExpression);
    }
    Set<RangeRep> ranges = new HashSet<>();
    boolean negative;
    if (setContext.negativeSet() != null) {
        ranges.addAll(Arrays.asList(RegexTreeListener.ranges(setContext.negativeSet().setItems())));
        negative = true;
    } else if (setContext.positiveSet() != null) {
        ranges.addAll(Arrays.asList(RegexTreeListener.ranges(setContext.positiveSet().setItems())));
        negative = false;
    } else {
        throw new AssertionError();
    }
    CodePointSet ret = CharacterClassesUtils.positiveFn(ranges);
    if (negative) {
        ret = ret.negative();
    }
    return ret;
}

From source file:com.github.s4ke.moar.regex.parser.RegexCompiler.java

License:Open Source License

private static RegexParser regexParser(String regexStr) {
    RegexLexer lexer = new RegexLexer(new ANTLRInputStream(regexStr));
    RegexParser parser = new RegexParser(new CommonTokenStream(lexer));
    parser.setBuildParseTree(true);//from  w  w w.  j a v  a 2  s  . c  o  m
    return parser;
}

From source file:com.github.sip.SipUtils.java

License:Apache License

private static SipParser getSipParser(String input) {

    SipErrorListener listener = new SipErrorListener();

    // Get our lexer
    SipLexer lexer = new SipLexer(new ANTLRInputStream(input));
    lexer.addErrorListener(listener);//from   w ww. ja  v  a  2s  .  co  m

    // Get a list of matched tokens
    CommonTokenStream tokens = new CommonTokenStream(lexer);

    // Pass the tokens to the parser
    SipParser parser = new SipParser(tokens);
    parser.setErrorHandler(new BailErrorStrategy());
    parser.addErrorListener(listener);
    return parser;
}

From source file:com.github.sip.SipUtils.java

License:Apache License

private static UriHeadersParser getUriHeadersParser(String input, int parsedLength) {

    SipErrorListener listener = new SipErrorListener(parsedLength);

    // Get our lexer
    UriHeadersLexer lexer = new UriHeadersLexer(new ANTLRInputStream(input));
    lexer.addErrorListener(listener);/* w w w . j  a  v a2 s. c  om*/

    // Get a list of matched tokens
    CommonTokenStream tokens = new CommonTokenStream(lexer);

    // Pass the tokens to the parser
    UriHeadersParser parser = new UriHeadersParser(tokens);
    parser.addErrorListener(listener);
    return parser;
}