#include "interpreter.hh" #include "error_handler.hh" #include "parser.hh" #include #include #include ErrorHandler error_handler{}; int main(int argc, char *argv[]) { (void)argc; (void)argv; // if (argc > 2) { // std::cout << "Usage: cclox [script]\n"; // exit(EX_USAGE); // } // // run_interpreter(argc, argv); ExprPtr literal = std::make_shared(ExprType::LITERAL, Literal{123}); ExprPtr left = std::make_shared(ExprType::UNARY, Unary{Token{TokenType::MINUS, "-", Object{}, 1}, literal}); Token op{TokenType::STAR, "*", Object{}, 1}; ExprPtr gliteral = std::make_shared(ExprType::LITERAL, Literal{45.67}); ExprPtr right = std::make_shared(ExprType::GROUPING, gliteral); Expr expr = {ExprType::BINARY, Binary{left, op, right}}; AstPrinter printer{}; std::cout << printer.print(expr) << '\n'; return 0; }