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:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user