2025-06-09 23:03:03 +01:00

35 lines
907 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 literal = std::make_shared<Expr>(ExprType::LITERAL, Literal{123});
ExprPtr left = std::make_shared<Expr>(ExprType::UNARY, Unary{Token{TokenType::MINUS, "-", Object{}, 1}, literal});
Token op{TokenType::STAR, "*", Object{}, 1};
ExprPtr gliteral = std::make_shared<Expr>(ExprType::LITERAL, Literal{45.67});
ExprPtr right = std::make_shared<Expr>(ExprType::GROUPING, gliteral);
Expr expr = {ExprType::BINARY, Binary{left, op, right}};
AstPrinter printer{};
std::cout << printer.print(expr) << '\n';
return 0;
}