2024-05-07 13:22:52 +00:00
|
|
|
//
|
|
|
|
// Created by servostar on 5/7/24.
|
|
|
|
//
|
|
|
|
|
|
|
|
#include <ast/ast.h>
|
|
|
|
#include <sys/log.h>
|
|
|
|
|
|
|
|
void generate_statement(const AST_NODE_PTR stmt) {
|
2024-05-30 19:43:14 +00:00
|
|
|
const AST_NODE_PTR add = AST_new_node(empty_location(), AST_Add, NULL);
|
2024-05-07 13:22:52 +00:00
|
|
|
|
2024-05-30 19:43:14 +00:00
|
|
|
AST_push_node(add, AST_new_node(empty_location(), AST_Int, "3"));
|
|
|
|
AST_push_node(add, AST_new_node(empty_location(), AST_Int, "6"));
|
2024-05-07 13:22:52 +00:00
|
|
|
|
|
|
|
AST_push_node(stmt, add);
|
|
|
|
}
|
|
|
|
|
|
|
|
void generate_branch(const AST_NODE_PTR stmt) {
|
2024-05-30 19:43:14 +00:00
|
|
|
const AST_NODE_PTR branch = AST_new_node(empty_location(), AST_If, NULL);
|
|
|
|
const AST_NODE_PTR gt = AST_new_node(empty_location(), AST_Greater, NULL);
|
2024-05-07 13:22:52 +00:00
|
|
|
|
|
|
|
AST_push_node(branch, gt);
|
|
|
|
|
2024-05-30 19:43:14 +00:00
|
|
|
AST_push_node(gt, AST_new_node(empty_location(), AST_Float, "2.3"));
|
|
|
|
AST_push_node(gt, AST_new_node(empty_location(), AST_Float, "0.79"));
|
2024-05-07 13:22:52 +00:00
|
|
|
|
|
|
|
AST_push_node(stmt, branch);
|
|
|
|
|
|
|
|
generate_statement(branch);
|
|
|
|
}
|
|
|
|
|
|
|
|
int main(void) {
|
|
|
|
|
2024-05-30 19:43:14 +00:00
|
|
|
const AST_NODE_PTR root = AST_new_node(empty_location(), AST_Stmt, NULL);
|
2024-05-07 13:22:52 +00:00
|
|
|
|
|
|
|
generate_branch(root);
|
|
|
|
|
|
|
|
AST_delete_node(root);
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|