/** Call this method to view a parse tree in a dialog box visually. */ public static Future<JFrame> inspect(Tree t, List<String> ruleNames) { TreeViewer viewer = new TreeViewer(ruleNames, t); return viewer.open(); }
/** Call this method to view a parse tree in a dialog box visually. */ public static Future<JDialog> inspect(Tree t, List<String> ruleNames) { TreeViewer viewer = new TreeViewer(ruleNames, t); return viewer.open(); }
/** Call this method to view a parse tree in a dialog box visually. */ public static Future<JFrame> inspect(Tree t, List<String> ruleNames) { TreeViewer viewer = new TreeViewer(ruleNames, t); return viewer.open(); }
/** * show the parseTree * * @param parseTree - the parse Tree to show * @param inputText - the input Text * @param ruleNames - the ruleNames to show */ public void showParseTree(ParseTree parseTree, String inputText, String[] ruleNames) { // http://stackoverflow.com/questions/30134121/drawing-parse-tree-in-antlr4-using-java/30137407#30137407 List<String> ruleNamesList = Arrays.asList(ruleNames); // http://stackoverflow.com/questions/34832518/antlr4-dotgenerator-example TreeViewer tv = new TreeViewer(ruleNamesList, parseTree); double scale = 1; if (showTreeViewer(tv, sourceFileName, inputText, scale) == JOptionPane.CANCEL_OPTION) { System.exit(1); } /* * DotGenerator gen = new DotGenerator(); * StringTemplate st = gen.toDOT((Tree) tree); * System.out.println(st); */ }
/** Call this method to view a parse tree in a dialog box visually. */ public static Future<JDialog> inspect(@Nullable Tree t, @Nullable List<String> ruleNames) { TreeViewer viewer = new TreeViewer(ruleNames, t); return viewer.open(); }
/** * @throws Exception exception */ public void run() throws Exception { final SourceLanguage sourceLanguage = SourceLanguages.fromFileName(this.path); if (sourceLanguage == null) { throw new IllegalArgumentException(); } new TreeViewer( Arrays.asList(sourceLanguage.getRuleNames()), sourceLanguage.createParseTree( new SourceFile(this.path) ).root() ) .open() .get() .setVisible(true); } }