1

main.cpp: Generate code from AST

This commit is contained in:
2023-03-21 15:49:47 +01:00
parent 2e2e5d8ed3
commit 4b9b4d3607
2 changed files with 9 additions and 1 deletions

View File

@ -18,7 +18,9 @@ add_executable(lasm
src/ast/nodes/JumpNode.cpp
src/ast/Observer.cpp
src/ast/PrefixObserver.cpp
src/ast/PostfixObserver.cpp
src/codegen/PrintObserver.cpp
src/codegen/CodegenObserver.cpp
src/parser/Parser.cpp)
target_link_libraries(lasm Boost::program_options)

View File

@ -8,6 +8,7 @@
#include "ast/Node.h"
#include "parser/Parser.h"
#include "codegen/PrintObserver.h"
#include "codegen/CodegenObserver.h"
namespace po = boost::program_options;
@ -92,8 +93,13 @@ auto main(int argc, char **argv) -> int {
// Parsing
std::cout << "Parsing:" << std::endl;
const std::unique_ptr<Node> ast = parse(tokens);
PrintObserver(*ast).Observer::traverse(); // Print the AST
PrintObserver(*ast).Observer::traverse();
// Codegen
std::cout << "Codegen:" << std::endl;
std::string output_string;
CodegenObserver(*ast, output_string).Observer::traverse();
std::cout << std::hex << output_string << std::endl;
return 0;
}