package uva.TaxForm;
import java.net.URL;
import org.antlr.v4.runtime.ANTLRFileStream;
import org.antlr.v4.runtime.CommonTokenStream;
import org.antlr.v4.runtime.tree.ParseTree;
import uva.TaxForm.AST.NodeForm;
import uva.TaxForm.AST.Visitors.CommonTaxFormVisitor;
import uva.TaxForm.AST.Visitors.Checker.QuestionChecker;
import uva.TaxForm.antlr4.TaxFormLexer;
import uva.TaxForm.antlr4.TaxFormParser;
public class TaxForm {
private URL formDefinition;
private String filePath;
public TaxForm(URL url, boolean internal) {
formDefinition = url;
if (internal) {
filePath = formDefinition.getPath().toString().substring(1, formDefinition.getPath().toString().length());
} else {
filePath = formDefinition.getPath().toString();
}
System.out.println( "filePath: " + filePath );
}
public void start() throws Exception {
ANTLRFileStream input = new ANTLRFileStream(filePath, "UTF-8");
TaxFormLexer lexer = new TaxFormLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
TaxFormParser parser = new TaxFormParser(tokens);
ParseTree tree = parser.form();
CommonTaxFormVisitor visitor = new CommonTaxFormVisitor();
NodeForm ast = (NodeForm) visitor.visit(tree);
System.out.println( ast.getName() );
QuestionChecker Qchecker = new QuestionChecker();
System.out.println( Qchecker.duplicates(ast) );
}
}