44 lines
890 B
C++
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;
|
|
}
|