List of usage examples for org.antlr.v4.runtime.tree Trees toStringTree
public static String toStringTree(final Tree t, final List<String> ruleNames)
From source file:es.ucm.fdi.ac.parser.AntlrTokenizer.java
License:Open Source License
public void tokenize(String source, String sourceFile, PrintWriter out) { Writer debugWriter = null;/*from w ww . j a va2 s . c o m*/ try { Lexer lexer = (Lexer) language.lexerConstructor.newInstance(new ANTLRInputStream(source)); final CommonTokenStream tokens = new CommonTokenStream(lexer); tokens.fill(); if (log.isDebugEnabled()) { try { debugWriter = new BufferedWriter( new FileWriter(Files.createTempFile("tokens-" + NDC.get() + "-", ".txt").toFile())); } catch (IOException ioe) { log.warn("Could not create debugWriter", ioe); } } for (final Token tok : tokens.getTokens()) { out.print(tokenToString(tok)); if (log.isDebugEnabled()) { log.debug(tok); if (debugWriter != null) { debugWriter.write(tokenToString(tok)); } } } if (parse) { Parser parser = (Parser) language.parserConstructor.newInstance(tokens); parser.setErrorHandler(new BailErrorStrategy()); ParserRuleContext parserRuleContext = (ParserRuleContext) language.parserMethod.invoke(parser); if (log.isDebugEnabled()) { log.debug(Trees.toStringTree(parserRuleContext, parser)); } } } catch (Exception e) { e.printStackTrace(); throw new IllegalArgumentException("Bad token in source, or failed to parse", e); } finally { out.flush(); if (log.isDebugEnabled() && debugWriter != null) { try { debugWriter.close(); } catch (IOException ioe) { log.warn("Could not close debugWriter", ioe); } } } }
From source file:io.proleap.cobol.runner.impl.CobolParseTestRunnerImpl.java
License:Open Source License
protected void doCompareParseTree(final File treeFile, final StartRuleContext startRule, final CobolParser parser) throws IOException { final String treeFileData = FileUtils.readFileToString(treeFile, StandardCharsets.UTF_8); if (!StringUtils.isEmpty(treeFileData)) { LOG.info("Comparing parse tree with file {}.", treeFile.getName()); final String inputFileTree = Trees.toStringTree(startRule, parser); final String cleanedInputFileTree = io.proleap.cobol.util.CobolTestStringUtils .cleanFileTree(inputFileTree); final String cleanedTreeFileData = io.proleap.cobol.util.CobolTestStringUtils .cleanFileTree(treeFileData); assertEquals(cleanedTreeFileData, cleanedInputFileTree); } else {/*ww w . jav a 2 s . c om*/ LOG.info("Ignoring empty parse tree file {}.", treeFile.getName()); } }
From source file:io.proleap.vb6.runner.impl.VbParseTestRunnerImpl.java
License:Open Source License
protected void doCompareParseTree(final File treeFile, final StartRuleContext startRule, final VisualBasic6Parser parser) throws IOException { final String treeFileData = FileUtils.readFileToString(treeFile); if (!Strings.isBlank(treeFileData)) { LOG.info("Comparing parse tree with file {}.", treeFile.getName()); final String inputFileTree = Trees.toStringTree(startRule, parser); final String cleanedInputFileTree = io.proleap.vb6.util.StringUtils.cleanFileTree(inputFileTree); final String cleanedTreeFileData = io.proleap.vb6.util.StringUtils.cleanFileTree(treeFileData); assertEquals(cleanedTreeFileData, cleanedInputFileTree); } else {//from w w w . j a v a2 s .co m LOG.info("Ignoring empty parse tree file {}.", treeFile.getName()); } }