35 lines
907 B
C++
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;
|
|
}
|