44 lines
890 B
C++

#include "interpreter.hh"
#include "error_handler.hh"
#include "parser.hh"
#include <iostream>
#include <memory>
#include <sysexits.h>
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 left = std::make_shared<Expr>(
make_expr(
Unary{
Token{TokenType::MINUS, "-", Object{}, 1},
std::make_shared<Expr>(make_expr(Literal{123}))
}
)
);
Token op{TokenType::STAR, "*", Object{}, 1};
ExprPtr right = std::make_shared<Expr>(
make_expr(
Grouping{std::make_shared<Expr>(make_expr(Literal{45.67}))}
)
);
Expr expr = {ExprType::BINARY, Binary{left, op, right}};
AstPrinter printer{};
std::cout << printer.print(expr) << '\n';
return 0;
}