package ar.com.javacuriosities.calculator.main;
import java.io.File;
import java.io.FileReader;
import java.net.URL;
import ar.com.javacuriosities.calculator.lexer.ArithmeticLexer;
import ar.com.javacuriosities.calculator.model.Document;
import ar.com.javacuriosities.calculator.parser.ArithmeticParser;
import java_cup.runtime.DefaultSymbolFactory;
import java_cup.runtime.Symbol;
import java_cup.runtime.SymbolFactory;
public class Main {
public static void main(String[] args) {
try {
URL resource = Thread.currentThread().getContextClassLoader().getResource("examples.data");
ArithmeticLexer lexer = new ArithmeticLexer(new FileReader(new File(resource.getFile())));
SymbolFactory symbolFactory = new DefaultSymbolFactory();
ArithmeticParser parser = new ArithmeticParser(lexer, symbolFactory);
// Se puede usar el método debug_parse para obtener información útil como los token procesados y reglas aplicadas
Symbol root = parser.parse();
Document document = (Document) root.value;
document.evaluate();
} catch (Exception e) {
// Log and Handle exception
e.printStackTrace();
}
}
}