/* * @Zarina */ package com.antlr4.zarina.tazql; import java.awt.Dimension; import java.io.FileInputStream; import java.util.Scanner; import javax.swing.JFrame; import javax.swing.JScrollPane; import org.antlr.v4.runtime.ANTLRInputStream; import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.tree.ParseTree; import org.antlr.v4.runtime.tree.ParseTreeWalker; import org.antlr.v4.runtime.tree.gui.TreeViewer; public class MainTaZQL { public static void main(String[] args) { Scanner scan = null; try { // has to be fixed later FileInputStream questionnaireFile = new FileInputStream("C:/questions.txt"); scan = new Scanner(questionnaireFile, "UTF-8").useDelimiter("\\A"); String inputQuestions = scan.next(); // System.out.println(inputQuestions); ANTLRInputStream inputStream = new ANTLRInputStream(inputQuestions); TaZQLLexer lexer = new TaZQLLexer(inputStream); CommonTokenStream tokens = new CommonTokenStream( lexer ); TaZQLParser parser = new TaZQLParser(tokens); //Walk the tree ParseTree tree = parser.parse(); ParseTreeWalker walker = new ParseTreeWalker(); Questions q = new Questions(); walker.walk( new MyTaZQLBaseListener(q), tree ); //parser.setBuildParseTree(true); //parser.addParseListener(new MyTaZQLBaseListener(q)); // Build a tree in console System.out.println("Tree: " + tree.toStringTree(parser)); // Tree in JFrame JFrame treeframe = new JFrame("Tree"); treeframe.setContentPane( new JScrollPane( new TreeViewer( null, tree ) ) ); treeframe.setPreferredSize( new Dimension( 600, 400 ) ); treeframe.pack(); treeframe.setLocationRelativeTo( null ); treeframe.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); treeframe.setVisible( true ); } catch (Exception e){ System.err.println(e.getMessage()); } finally { scan.close(); if (scan!=null) try {scan.close();} catch (Exception e) {System.err.println(e.getMessage());} } } }