1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #include "symbol_table.h"
- #include <stdio.h>
- #include <assert.h>
-
- int main() {
- int err;
- SymbolTable table;
- SymbolItem *item;
-
- init_table(&table);
- err = add_symbol(&table, TYPE_CONST, "y");
- printf("Adding y symbol\n");
- assert(err == 0);
- err = add_symbol(&table, TYPE_INT, "x");
- printf("Adding x symbol\n");
- assert(err == 0);
- err = add_symbol(&table, TYPE_CONST, "y");
- printf("Adding y symbol\n");
- assert(err == -1);
-
- item = get_symbol_item(&table, "y");
- printf("Getting item y: \n");
- print_item(item);
- err = mark_symbol_initialized(&table, "y");
- printf("Mark y initialized\n");
- assert(err == 0);
- print_item(item);
- err = mark_symbol_initialized(&table, "y");
- printf("Mark y initialized\n");
- assert(err == -2);
- print_item(item);
- err = mark_symbol_initialized(&table, "b");
- printf("Mark b initialized\n");
- assert(err == -1);
-
- err = add_temp_symbol(&table, TYPE_INT, "_temp1");
- printf("Add _temp1 temporary variable\n");
- assert(err == 0);
- err = add_temp_symbol(&table, TYPE_INT, "_temp2");
- printf("Add _temp2 temporary variable\n");
- assert(err == 0);
- err = add_temp_symbol(&table, TYPE_INT, "_temp1");
- printf("Add _temp1 temporary variable\n");
- assert(err == -1);
- err = add_temp_symbol(&table, TYPE_INT, "temp1");
- printf("Add temp1 temporary variable\n");
- assert(err == -3);
-
- item = get_symbol_item(&table, "_temp1");
- printf("_temp1:\n");
- print_item(item);
- item = get_symbol_item(&table, "_temp5");
- printf("_temp5:\n");
- print_item(item);
-
- printf("\n=================\n");
- printf("Full table: \n");
- print_table(&table);
- }
|