List of usage examples for org.antlr.v4.runtime CommonTokenStream CommonTokenStream
public CommonTokenStream(TokenSource tokenSource)
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); }