package ir2.td6;

import ir2.td6.parser.NonTerminalEnum;
import ir2.td6.tools.ASTEvaluator;
import ir2.td6.tools.Analyzer;
import ir2.td6.tools.Start__Expr;
import ir2.td6.tools.TerminalEvaluator;

import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.Reader;

public class BooleanExprMainWithVisitorTD6 {

	
	public static void main(String[] args) throws Throwable{
		Reader reader;
		if (args.length>0) {
			reader = new FileReader(args[0]);
		} else {
			reader = new InputStreamReader(System.in);
		}
		final TerminalEvaluator<CharSequence> attributeEvaluator=new BooleanTerminalEvaluator();
		final ASTEvaluator ast = new ASTEvaluator();
		Analyzer.run(reader,attributeEvaluator,ast,NonTerminalEnum.start,null);
		Start__Expr start = ast.getStart();
		final BooleanVisitor visitor = new BooleanVisitor();
		start.accept(visitor, null);
		System.out.println("Result = "+visitor.getResult());
	}

}
