Year 2 compilers coureswork

nodes.c 596B

1234567891011121314151617181920212223242526272829303132
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "nodes.h"
  4. #include "C.tab.h"
  5. NODE* make_node(int t, NODE* left, NODE* right)
  6. {
  7. NODE *a = (NODE*)malloc(sizeof(NODE));
  8. if (a==NULL) {
  9. perror("Cannot make node");
  10. exit(1);
  11. }
  12. a->type = t;
  13. a->left = left;
  14. a->right = right;
  15. return a;
  16. }
  17. NODE* make_leaf(TOKEN* l)
  18. {
  19. NODE *a = (NODE*)malloc(sizeof(NODE));
  20. /* printf("make_leaf: %p -> %p\n", l, a); */
  21. if (a==NULL) {
  22. perror("Cannot make leaf");
  23. exit(1);
  24. }
  25. a->type = LEAF;
  26. a->left = (NODE*)l;
  27. a->right = NULL;
  28. return a;
  29. }