branch.c 815 B

12345678910111213141516171819202122232425262728293031323334
  1. #include<stdio.h>
  2. // #include "interpreter.h"
  3. if_list *make_base_if();
  4. if_list *make_if(statement *, statement *);
  5. if_list *append_elif(if_list *, if_list *);
  6. if_list *make_base_if(){ // make base if
  7. if_list *tmp;
  8. tmp = malloc(sizeof(if_list)); // get an address for base var
  9. tmp->next = NULL;
  10. tmp->done = NULL;
  11. tmp->condition = NULL;
  12. return tmp;
  13. }
  14. if_list *make_if(statement *condition, statement *done_base){ // if
  15. if_list *tmp = make_base_if();
  16. tmp->done = done_base;
  17. tmp->condition = condition;
  18. return tmp;
  19. }
  20. if_list *append_elif(if_list *tmp ,if_list *base_if_list){ // elif
  21. if_list *start = base_if_list;
  22. while(1){
  23. if(start->next == NULL){
  24. break;
  25. }
  26. start = start->next;
  27. }
  28. start->next = tmp;
  29. return tmp;
  30. }