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.tbodt.jtl.Jtl.java

License:Open Source License

private static String generateCode(CharStream jtl) {
    JtlParser parser = new JtlParser(new CommonTokenStream(new JtlLexer(jtl)));
    ParseTree tree = parser.template();//from  w ww .ja  v a 2  s . com
    ParseTreeWalker walker = new ParseTreeWalker();
    final StringBuilder builder = new StringBuilder();
    builder.append("StringBuilder _builder = new StringBuilder();\n");
    ParseTreeListener listener = new JtlParserBaseListener() {
        @Override
        public void enterText(JtlParser.TextContext ctx) {
            builder.append("_builder.append(\"");
            builder.append(StringEscapeUtils.escapeJava(ctx.getText()));
            builder.append("\");\n");
        }

        @Override
        public void enterEmbed(JtlParser.EmbedContext ctx) {
            builder.append("_builder.append(");
            builder.append(combineText(ctx.CODE()));
            builder.append(");\n");
        }

        @Override
        public void enterCode(JtlParser.CodeContext ctx) {
            builder.append("\n");
            builder.append(combineText(ctx.CODE()));
            builder.append("\n");
        }
    };
    walker.walk(listener, tree);
    builder.append("return _builder.toString();\n");
    return builder.toString();
}

From source file:com.tbodt.trp.CommandProcessor.java

License:Open Source License

/**
 * Process a TRP command. If the command succeeded, returns the result in a {@code Optional<Stream<WordSequence>>}. If the command failed, returns
 * an empty optional.//from w  w w  .  j av  a  2s. c om
 *
 * @param command the command
 * @return If the command succeeded, returns the result in a {@code Optional<Stream<WordSequence>>}. If the command failed, returns an empty
 * optional.
 */
public static Optional<Stream<WordSequence>> processCommand(String command) {
    errors = false;
    ANTLRInputStream inputStream = new ANTLRInputStream(command);
    CommandLexer lexer = new CommandLexer(inputStream);
    CommandParser parser = new CommandParser(new CommonTokenStream(lexer));
    ANTLRErrorListener errListener = new BaseErrorListener() {
        @Override
        public void syntaxError(Recognizer<?, ?> rcgnzr, Object o, int i, int i1, String msg,
                RecognitionException re) {
            reportError(msg);
        }
    };
    parser.removeErrorListeners();
    parser.addErrorListener(errListener);
    lexer.removeErrorListeners();
    lexer.addErrorListener(errListener);
    ParseTree tree = parser.command();
    CommandParseVisitor visitor = new CommandParseVisitor();
    @SuppressWarnings("unchecked")
    Stream<WordSequence> dataStream = (Stream<WordSequence>) visitor.visit(tree);
    if (errors == false)
        return Optional.of(dataStream);
    else
        return Optional.empty();
}

From source file:com.tehforce.sofa.GameController.java

License:Open Source License

/**
 * Constructor for GameController./*from   ww  w.  jav  a 2s .  c o  m*/
 * Initiates all language processing, character creation and texture loading.
 * 
 * @param leftTeam File object for the file containing the code for the team starting to the left.
 * @param rightTeam File object for the file containing the code for the team starting to the right.
 */
public GameController(File leftTeam, File rightTeam) {
    SofaLangLexer rlex = null, llex = null;

    try {
        llex = new SofaLangLexer(new ANTLRFileStream(leftTeam.getAbsolutePath()));
        rlex = new SofaLangLexer(new ANTLRFileStream(rightTeam.getAbsolutePath()));
    } catch (IOException e) {
        System.out.println("Error reading input files: " + e.getMessage());
        Gdx.app.exit();
    }

    SofaLangParser lparser = new SofaLangParser(new CommonTokenStream(llex));
    SofaLangParser rparser = new SofaLangParser(new CommonTokenStream(rlex));

    lparser.setErrorHandler(new BailErrorStrategy());
    rparser.setErrorHandler(new BailErrorStrategy());

    try {
        redTree = lparser.prog();
        blueTree = rparser.prog();
    } catch (ParseCancellationException e) {
        Gdx.app.exit();
    }

    redEvaluator = new Evaluator(redTeam, blueTeam, redTree);
    blueEvaluator = new Evaluator(blueTeam, redTeam, blueTree);

    Character rw = new Warrior(redEvaluator, 10, 25, "redwarrior", 3);
    Character bw = new Warrior(blueEvaluator, 89, 25, "bluewarrior", 3);
    Character rh = new Healer(redEvaluator, 2, 50, "redhealer", 5);
    Character bh = new Healer(blueEvaluator, 96, 50, "bluehealer", 5);
    Character rr = new Ranger(redEvaluator, 10, 75, "redranger", 2);
    Character br = new Ranger(blueEvaluator, 89, 75, "blueranger", 2);

    redTeam.setWarrior(rw);
    redTeam.setHealer(rh);
    redTeam.setRanger(rr);

    blueTeam.setWarrior(bw);
    blueTeam.setHealer(bh);
    blueTeam.setRanger(br);

    characters.add(rw);
    characters.add(rh);
    characters.add(rr);
    characters.add(bw);
    characters.add(bh);
    characters.add(br);

    loadTextures();
}

From source file:com.thoughtworks.studios.journey.jql.conditions.JourneyCondition.java

License:Open Source License

public static JourneyCondition parse(String expression) {
    JourneyConditionLexer lexer = new JourneyConditionLexer(new ANTLRInputStream(expression));
    JourneyConditionParser parser = new JourneyConditionParser(new CommonTokenStream(lexer));
    parser.addErrorListener(new BaseErrorListener() {
        @Override/*from ww  w. java  2  s  .  c o m*/
        public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line,
                int charPositionInLine, String msg, RecognitionException e) {
            throw new DataQueryError(
                    "condition parsing error (" + line + "," + charPositionInLine + "): " + msg);
        }
    });

    final JourneyCondition condition = new JourneyCondition();
    JourneyConditionParser.ConditionContext context = parser.condition();
    condition.leftExpr = visit(context.expr(0));
    condition.rightExpr = visit(context.expr(1));
    condition.relationOperator = RelationOperator.forSymbol(context.rel_op().getText());
    return condition;
}

From source file:com.thoughtworks.studios.journey.jql.Select.java

License:Open Source License

public static Select parse(final Application app, String statement) {
    final Select select = new Select();
    SelectStatementLexer lexer = new SelectStatementLexer(new ANTLRInputStream(statement));
    SelectStatementParser parser = new SelectStatementParser(new CommonTokenStream(lexer));
    parser.addErrorListener(new BaseErrorListener() {
        @Override//from  w  ww  . j a  v  a  2 s  .  c  o  m
        public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line,
                int charPositionInLine, String msg, RecognitionException e) {
            throw new DataQueryError(
                    "\"select\" parsing error (" + line + "," + charPositionInLine + "): " + msg);
        }
    });
    parser.addParseListener(new SelectStatementBaseListener() {
        @Override
        public void enterTuple(SelectStatementParser.TupleContext ctx) {
            select.branches = new ArrayList<>();
        }

        @Override
        public void exitTuple(SelectStatementParser.TupleContext ctx) {
            select.branchesInitFinished = true;
        }

        @Override
        public void enterBranch(SelectStatementParser.BranchContext ctx) {
            select.branches.add(new CollectorBranch());
        }

        @Override
        public void exitCollector(SelectStatementParser.CollectorContext ctx) {
            CollectorBranch branch = lastBranch();
            branch.collector = ValueCollector.eval(app, ctx.getText());
        }

        private CollectorBranch lastBranch() {
            return select.branches.get(select.branches.size() - 1);
        }

        @Override
        public void exitTransformFN(SelectStatementParser.TransformFNContext ctx) {
            if (select.branchesInitFinished) {
                ColumnTransformFn fn = Transforms.evalColumnTransform(ctx.getText());
                select.columnTransforms.add(fn);
            } else {
                ValueTransformFn fn = Transforms.evalValueTransform(ctx.getText());
                lastBranch().transforms.add(fn);
            }
        }
    });
    parser.statement();
    return select;
}

From source file:com.torchmind.candle.Candle.java

License:Apache License

/**
 * Processes an {@link org.antlr.v4.runtime.ANTLRInputStream}.
 *
 * @param inputStream The input stream./*w ww .  j ava  2s . c o  m*/
 * @return The document.
 *
 * @throws com.torchmind.candle.api.error.CandleException when lexing or parsing fails.
 */
@Nonnull
protected Candle read(@Nonnull ANTLRInputStream inputStream) throws CandleException {
    try {
        CandleLexer lexer = new CandleLexer(inputStream);
        lexer.addErrorListener(new LexerErrorListener());

        CommonTokenStream tokenStream = new CommonTokenStream(lexer);
        CandleParser parser = new CandleParser(tokenStream);
        parser.setErrorHandler(new ParserErrorStrategy());

        ParseTreeWalker walker = new ParseTreeWalker();
        CandleListener listener = new CandleListener(this);

        this.clear();
        walker.walk(listener, parser.candle());
        return this;
    } catch (RuntimeException ex) {
        if (ex.getCause() instanceof CandleException) {
            throw ((CandleException) ex.getCause());
        }
        throw ex;
    }
}

From source file:com.translator.gui.MainWindow.java

public static String execute(String sourceCode) {
    ContextHolder.methodDeclaration = null;
    ContextHolder.classDeclarations.clear();
    ANTLRInputStream stream = new ANTLRInputStream(sourceCode);
    JavaLexer lexer = new JavaLexer(stream);
    CommonTokenStream tokens = new CommonTokenStream(lexer);
    JavaParser parser = new JavaParser(tokens);

    JavaParser.CompilationUnitContext tree = parser.compilationUnit();
    try {/* w  w  w.  j  a  v  a2 s .co m*/
        TranslationUnit translationUnit = new TranslationUnit(tree);
        return translationUnit.toString();
    } catch (RecognitionException ex) {
        JOptionPane.showMessageDialog(null, "Syntax error: " + ex, "Bd", JOptionPane.ERROR_MESSAGE);
    }
    //return translationUnit.toString();
    return null;
}

From source file:com.twosigma.beaker.groovy.autocomplete.GroovyAutocomplete.java

License:Apache License

public List<String> doAutocomplete(String txt, int cur, ClassLoader l) {
    ClassUtils cu = createClassUtils(l);
    setup(cu, registry);/*  w w w  . j  a  v  a 2  s .  c om*/
    registry.clearForType(GroovyCompletionTypes.CUSTOM_TYPE);
    registry.clearForType(GroovyCompletionTypes.FIELD);
    registry.clearForType(GroovyCompletionTypes.NAME);
    addDefaultImports(cu);
    moreSetup(cu);
    moreSetup(registry);

    Lexer lexer = new GroovyLexer(new ANTLRInputStream(txt));
    lexer.removeErrorListeners();

    CommonTokenStream tokens = new CommonTokenStream(lexer);

    // Create a parser that reads from the scanner
    GroovyParser parser = new GroovyParser(tokens);
    parser.removeErrorListeners();

    // start parsing at the compilationUnit rule
    ParserRuleContext t = parser.compilationUnit();
    ParseTreeWalker walker = new ParseTreeWalker();
    List<AutocompleteCandidate> q = new ArrayList<AutocompleteCandidate>();

    GroovyImportDeclarationCompletion extractor = new GroovyImportDeclarationCompletion(txt, cur, registry, cps,
            cu);
    GroovyNameBuilder extractor2 = new GroovyNameBuilder(registry, cu);
    GroovyNodeCompletion extractor3 = new GroovyNodeCompletion(txt, cur, registry, cu);
    walker.walk(extractor, t);
    if (extractor.getQuery() != null)
        q.addAll(extractor.getQuery());
    walker.walk(extractor2, t);
    walker.walk(extractor3, t);
    if (extractor3.getQuery() != null)
        q.addAll(extractor3.getQuery());
    List<String> ret = registry.searchCandidates(q);

    if (ret.isEmpty()) {
        q.clear();
        for (int i = cur - 1; i >= 0; i--) {
            if (i < txt.length() && Character.isWhitespace(txt.charAt(i))) {
                String tx = txt.substring(i + 1, cur).trim();
                if (!txt.isEmpty()) {
                    if (tx.contains(".")) {
                        q.add(cu.expandExpression(tx, registry, cu.DO_ALL));
                    } else {
                        q.add(new AutocompleteCandidate(GroovyCompletionTypes.NAME, tx));
                    }
                    ret = registry.searchCandidates(q);
                }
                break;
            }
        }
    }

    if (txt.charAt(cur - 1) == '.') {
        for (int i = 0; i < ret.size(); i++) {
            String s = ret.get(i);
            if (s.startsWith("."))
                ret.set(i, s.substring(1));
        }
    }

    // this shows the GUI
    if (GroovyCompletionTypes.debug)
        t.inspect(parser);
    return ret;
}

From source file:com.twosigma.beaker.javash.autocomplete.JavaAutocomplete.java

License:Apache License

public List<String> doAutocomplete(String txt, int cur) {
    ClassUtils cu = createClassUtils();// ww  w .j  a v  a  2s .co m
    setup(cu, registry);
    registry.clearForType(JavaCompletionTypes.CUSTOM_TYPE);
    registry.clearForType(JavaCompletionTypes.FIELD);
    registry.clearForType(JavaCompletionTypes.NAME);
    addDefaultImports(cu);
    moreSetup(cu);
    moreSetup(registry);

    Lexer lexer = new JavaLexer(new ANTLRInputStream(txt));
    CommonTokenStream tokens = new CommonTokenStream(lexer);

    // Create a parser that reads from the scanner
    JavaParser parser = new JavaParser(tokens);
    parser.removeErrorListeners();

    // start parsing at the compilationUnit rule
    ParserRuleContext t = parser.compilationUnit();
    ParseTreeWalker walker = new ParseTreeWalker();
    List<AutocompleteCandidate> q = new ArrayList<AutocompleteCandidate>();

    JavaImportDeclarationCompletion extractor = new JavaImportDeclarationCompletion(txt, cur, registry, cps,
            cu);
    JavaNameBuilder extractor2 = new JavaNameBuilder(registry, cu);
    JavaNodeCompletion extractor3 = new JavaNodeCompletion(txt, cur, registry, cu);
    walker.walk(extractor, t);
    if (extractor.getQuery() != null)
        q.addAll(extractor.getQuery());
    walker.walk(extractor2, t);
    walker.walk(extractor3, t);
    if (extractor3.getQuery() != null)
        q.addAll(extractor3.getQuery());
    List<String> ret = registry.searchCandidates(q);

    if (ret.isEmpty()) {
        q.clear();
        for (int i = cur - 1; i >= 0; i--) {
            if (Character.isWhitespace(txt.charAt(i))) {
                String tx = txt.substring(i + 1, cur).trim();
                if (!txt.isEmpty()) {
                    if (tx.contains(".")) {
                        q.add(cu.expandExpression(tx, registry, cu.DO_ALL));
                    } else {
                        q.add(new AutocompleteCandidate(JavaCompletionTypes.NAME, tx));
                    }
                    ret = registry.searchCandidates(q);
                }
                break;
            }
        }
    }

    if (txt.charAt(cur - 1) == '.') {
        for (int i = 0; i < ret.size(); i++) {
            String s = ret.get(i);
            if (s.startsWith("."))
                ret.set(i, s.substring(1));
        }
    }

    // this shows the GUI
    //t.inspect(parser);
    return ret;
}

From source file:com.twosigma.beakerx.groovy.autocomplete.GroovyAutocomplete.java

License:Apache License

private AutocompleteResult tryFindAutocomplete(String txt, int cur, ClassLoader l, Imports imports) {
    registry = AutocompleteRegistryFactory.createRegistry(cps);
    GroovyClassUtils cu = createClassUtils(l);
    setup(cu, registry);//from   w  ww  . j av a  2  s .c  om
    AutocompleteRegistryFactory.addDefaultImports(cu, registry, imports.toListOfStrings(), cps);
    AutocompleteRegistryFactory.moreSetup(cu);

    Lexer lexer = new GroovyLexer(new ANTLRInputStream(txt));
    lexer.removeErrorListeners();
    CommonTokenStream tokens = new CommonTokenStream(lexer);

    // Create a parser that reads from the scanner
    GroovyParser parser = new GroovyParser(tokens);
    parser.removeErrorListeners();

    // start parsing at the compilationUnit rule
    ParserRuleContext t = parser.compilationUnit();
    ParseTreeWalker walker = new ParseTreeWalker();
    List<AutocompleteCandidate> q = new ArrayList<>();

    GroovyImportDeclarationCompletion extractor = new GroovyImportDeclarationCompletion(txt, cur, registry, cps,
            cu);
    GroovyNameBuilder extractor2 = new GroovyNameBuilder(registry, cu);
    GroovyNodeCompletion extractor3 = new GroovyNodeCompletion(txt, cur, registry, cu);

    walker.walk(extractor, t);
    if (extractor.getQuery() != null)
        q.addAll(extractor.getQuery());
    walker.walk(extractor2, t);
    walker.walk(extractor3, t);
    if (extractor3.getQuery() != null)
        q.addAll(extractor3.getQuery());
    List<String> ret = registry.searchCandidates(q);

    if (!ret.isEmpty()) {
        return new AutocompleteResult(ret, getStartIndex(extractor, extractor2, extractor3));
    }
    return findAutocompleteResult(txt, cur, cu);
}