You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
eon/logic/logic.c

52 lines
1.6 KiB

#include "../includes/include.h"
node_info *create_logic(int opperation, int expr, node_info *statement_list, node_info *else_false) {
node_info *n = malloc(sizeof(node_info));
switch (opperation) {
//if statement
case 1:
//logical expression, see node_info for opperation info
n->opperation = 4;
logic a;
a.opperation = 1;
a.expr = expr;
while (statement_list->statement_list != NULL) {
statement_list = statement_list->statement_list;
}
//now that we have the statement list, we need to make the head opperation 5
node_info *newNode = malloc(sizeof(node_info));
newNode->opperation = 5;
newNode->next = copy_linked_list(statement_list);
_free_linked_list(statement_list);
a.if_true = newNode;
//this removes the last statement list in statementHead
statement_list = NULL;
n->logicalExpression = a;
return n;
break;
//while loop
case 2:
/*n->opperation = 4;
logic b;
b.opperation = 2;
b.expr = expr;
b.while_true = if_true;
n->logicalExpression = b;
return n;*/
break;
default:
printf("check your yacc file for logical statements\n");
}
}