package test;
import expr.Ident;
import gui.render.Renderer;
import gui.render.State;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import org.antlr.v4.runtime.ANTLRInputStream;
import org.antlr.v4.runtime.CommonTokenStream;
import typecheck.Typecheck;
import antlr4.QLLexer;
import antlr4.QLParser;
import ast.ASTNode;
import ast.errormsg.Error;
import ast.form.Form;
import ast.form.Question;
import ast.form.StatementList;
public class TestRenderer extends JFrame {
private static final long serialVersionUID = 1L;
StatementList statement;
Renderer renderer;
JComponent jcomp = null;
public TestRenderer() throws FileNotFoundException, IOException {
Form form = getinput();
renderer = new Renderer(new State(), form);
statement = form.getStatements();
for (int i = 0; i < statement.getList().size(); i++) {
if (statement.getList().get(i).getClass() == Question.class) {
Question node = (Question) statement.getList().get(i);
jcomp = renderer.visit(node);
setLayout(new GridBagLayout () );
GridBagConstraints c= new GridBagConstraints();
c.gridx=0;
c.gridy=1;
add(jcomp,c);
}
}
setTitle("Housing");
setSize(1000, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
TestRenderer r;
try {
r = new TestRenderer();
r.setVisible(true);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
private Form getinput() throws FileNotFoundException, IOException {
File infile = new File(
"C:\\Users\\nisha\\workspace\\Nisha\\src\\test1.ql");
ANTLRInputStream input = new ANTLRInputStream(new FileInputStream(
infile));
QLLexer lexer = new QLLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
QLParser parser = new QLParser(tokens);
ASTNode tree = parser.forms().result;
Map<Ident, ast.type.Type> mapvalue = new HashMap<Ident, ast.type.Type>();
Error errors= new Error();
Typecheck t = new Typecheck(mapvalue, errors);
boolean result = t.checkId(tree, mapvalue, errors);
System.out.println("result is " + result);
if (result)
return (Form) tree;
else
System.out.println(t.get_errorList());
return null;
}
}