-
Notifications
You must be signed in to change notification settings - Fork 2
/
DodaSymbolTable.h
80 lines (70 loc) · 1.91 KB
/
DodaSymbolTable.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// #include <iostream>
// #include <unordered_map>
// #include <string>
// #include <vector>
// using namespace std;
// struct record
// {
// string name;
// string kind;
// string type;
// };
// struct blockNode
// {
// string parent;
// vector<string> childs;
// vector<record> records;
// };
// class DodaSymbolTable{
// public:
// DodaSymbolTable();
// unordered_map<string, blockNode> SymbolTable;
// int blocksNum = 0;
// string currentBlock;
// record currentRecord;
// int dummy = 8;
// void addBlock()
// {
// cout << "add block bla bla bla "<<endl;
// blockNode b;
// b.parent = "block" + to_string(blocksNum);
// blocksNum++;
// SymbolTable["block" + to_string(blocksNum)] = b;
// }
// void closeBlock()
// {
// cout << "close block bla bla bla "<<endl;
// currentBlock = SymbolTable[currentBlock].parent;
// }
// void addRecord()
// {
// cout << "add record bla bla bla "<<endl;
// SymbolTable[currentBlock].records.push_back(currentRecord);
// }
// void printTable()
// {
// cout << "blocksnum : " << blocksNum << endl;
// for(auto x: SymbolTable)
// {
// cout << x.first << endl;
// printBlock(x.second);
// }
// }
// void printBlock(blockNode b)
// {
// string parent;
// vector<string> childs;
// vector<record> records;
// cout << "parent : " << b.parent << endl;
// cout << "printing the records" << endl;
// for(auto record : records)
// {
// cout << record.name << " " << record.type << " " << record.kind << endl;
// }
// cout << "printing the childs" << endl;
// for(auto child : childs)
// {
// cout << child << endl;
// }
// }
// };