le compilateur super performant
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.

symbol_table.test.c 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include "symbol_table.h"
  2. #include <stdio.h>
  3. #include <assert.h>
  4. int main() {
  5. int err;
  6. SymbolTable table;
  7. SymbolItem *item;
  8. init_table(&table);
  9. err = add_symbol(&table, TYPE_CONST, "y");
  10. printf("Adding y symbol\n");
  11. assert(err == 0);
  12. err = add_symbol(&table, TYPE_INT, "x");
  13. printf("Adding x symbol\n");
  14. assert(err == 0);
  15. err = add_symbol(&table, TYPE_CONST, "y");
  16. printf("Adding y symbol\n");
  17. assert(err == -1);
  18. item = get_symbol_item(&table, "y");
  19. printf("Getting item y: \n");
  20. print_item(item);
  21. err = mark_symbol_initialized(&table, "y");
  22. printf("Mark y initialized\n");
  23. assert(err == 0);
  24. print_item(item);
  25. err = mark_symbol_initialized(&table, "y");
  26. printf("Mark y initialized\n");
  27. assert(err == -2);
  28. print_item(item);
  29. err = mark_symbol_initialized(&table, "b");
  30. printf("Mark b initialized\n");
  31. assert(err == -1);
  32. err = add_temp_symbol(&table, TYPE_INT, "_temp1");
  33. printf("Add _temp1 temporary variable\n");
  34. assert(err == 0);
  35. err = add_temp_symbol(&table, TYPE_INT, "_temp2");
  36. printf("Add _temp2 temporary variable\n");
  37. assert(err == 0);
  38. err = add_temp_symbol(&table, TYPE_INT, "_temp1");
  39. printf("Add _temp1 temporary variable\n");
  40. assert(err == -1);
  41. err = add_temp_symbol(&table, TYPE_INT, "temp1");
  42. printf("Add temp1 temporary variable\n");
  43. assert(err == -3);
  44. item = get_symbol_item(&table, "_temp1");
  45. printf("_temp1:\n");
  46. print_item(item);
  47. item = get_symbol_item(&table, "_temp5");
  48. printf("_temp5:\n");
  49. print_item(item);
  50. printf("\n=================\n");
  51. printf("Full table: \n");
  52. print_table(&table);
  53. }