Fixed many minor things, tested it on main and is amazing, i think i need to start adding fractions next so further testing can be done with more powerful operators

This commit is contained in:
2026-03-25 12:25:15 -06:00
parent 92d142b9cf
commit 1ce64d8e9e
7 changed files with 30 additions and 15 deletions

View File

@@ -2,17 +2,17 @@
#include "lexer.h"
#include <stdint.h>
uint64_t evaluate(ASTNode *tree) {
int64_t evaluate(ASTNode *tree) {
if (tree->type == NODE_BINARY_OP) {
switch (tree->data.binary.op) {
case OP_ADD:
return evaluate(tree->data.binary.left) + evaluate(tree->data.binary.left);
return evaluate(tree->data.binary.left) + evaluate(tree->data.binary.right);
case OP_SUB:
return evaluate(tree->data.binary.left) - evaluate(tree->data.binary.left);
return evaluate(tree->data.binary.left) - evaluate(tree->data.binary.right);
case OP_MUL:
return evaluate(tree->data.binary.left) * evaluate(tree->data.binary.left);
return evaluate(tree->data.binary.left) * evaluate(tree->data.binary.right);
case OP_DIV:
return evaluate(tree->data.binary.left) / evaluate(tree->data.binary.left);
return evaluate(tree->data.binary.left) / evaluate(tree->data.binary.right);
}
} else {