// // Created by Bobby Lucero on 5/21/23. // #include "../headers/bob.h" #include "../headers/Expression.h" #include "../headers/Lexer.h" #include "../headers/ASTPrinter.h" #include "../headers/TypeWrapper.h" int main(){ Bob bobLang; //bobLang.runFile("source.bob"); ASTPrinter printer; std::shared_ptr> expression = std::make_shared >( std::make_shared>( Token{MINUS, "-", 1}, std::make_shared>("123", true) ), Token{STAR, "*", 1}, std::make_shared>( std::make_shared>("45.67", true) ) ); // Expr* e = new BinaryExpr( // new UnaryExpr(Token{MINUS, "-", 0}, new LiteralExpr("123")), // Token{STAR, "*", 0}, // new UnaryExpr(Token{PLUS, "+", 0}, new LiteralExpr("535")) // ); LiteralExpr* le = new LiteralExpr("123", true); std::cout << printer.print(expression.get()); std::cout << std::endl; //bobLang.runPrompt(); std::shared_ptr object = std::make_shared(String{"Hi"}); if(auto num = std::dynamic_pointer_cast(object)) { std::cout << num->value << std::endl; }else if(auto str = std::dynamic_pointer_cast(object)) { std::cout << str->value << std::endl; } return 0; }