Skip to content

Commit c3bb9cf

Browse files
added some fxns to ast
1 parent ef684a1 commit c3bb9cf

File tree

11 files changed

+20
-106
lines changed

11 files changed

+20
-106
lines changed

AbstractSyntaxTree.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@ void AbstractSyntaxTree::print() {
1313
}
1414

1515
void AbstractSyntaxTree::generate(vector<string> vec) {
16-
16+
this->tree.generate(vec, 0, (int)vec.size() - 1);
17+
this->tree.traverse_tree(this->values);
1718
}

AbstractSyntaxTree.h

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ using namespace std;
99
class AbstractSyntaxTree {
1010
public:
1111
Tree tree;
12+
map<string,int> values;
1213
void print();
1314
void generate (vector<string>);
1415
AbstractSyntaxTree(vector<string>);

Tree.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@ void Tree::generate(vector<string> &vec, int i, int j) {
151151
string expression = substring(s, ind + 1, (int)s.size() - 1);
152152
vector<string> ps = this->parse_expression(expression);
153153
res->neighbors[VARIABLE] = new Tree(variable);
154-
cout << "FINE\n";
155154
res->neighbors[EXPRESSION] = new Tree();
156155
res->neighbors[EXPRESSION]->expression(ps);
157156
}

cmake-build-debug/.ninja_deps

24.2 KB
Binary file not shown.

cmake-build-debug/.ninja_log

+11-96
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,14 @@
11
# ninja log v5
2-
0 122 1727549300760608481 build.ninja a81c2310a19bffe8
3-
4 2704 1727555375713002625 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
4-
15 10443 1727555188430797918 CMakeFiles/TinyCompiler.dir/AbstractSyntaxTree.cpp.o fe0c392b8e8c0c55
5-
9 12182 1727555190266304517 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
6-
2705 3050 1727555376068278886 TinyCompiler 9f3800fbf957f75
7-
2 1329 1727555441271444539 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
8-
1330 1503 1727555441448484957 TinyCompiler 9f3800fbf957f75
9-
2 1102 1727555455394625259 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
10-
1102 1263 1727555455559163056 TinyCompiler 9f3800fbf957f75
11-
3 1731 1727555495318209603 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
12-
1731 1956 1727555495549414032 TinyCompiler 9f3800fbf957f75
13-
3 1910 1727555523107983720 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
14-
1910 2128 1727555523330573179 TinyCompiler 9f3800fbf957f75
15-
4 2066 1727555551878985250 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
16-
2066 2283 1727555552099514320 TinyCompiler 9f3800fbf957f75
17-
3 2200 1727555574745374533 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
18-
2200 2467 1727555575016304591 TinyCompiler 9f3800fbf957f75
19-
3 1950 1727555630757487147 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
20-
1950 2166 1727555630978696347 TinyCompiler 9f3800fbf957f75
21-
3 2615 1727555666016889764 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
22-
2615 2936 1727555666345615857 TinyCompiler 9f3800fbf957f75
23-
3 3521 1727555687369405371 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
24-
3525 3903 1727555687756897961 TinyCompiler 9f3800fbf957f75
25-
5 1137 1727560237068081561 CMakeFiles/TinyCompiler.dir/AbstractSyntaxTree.cpp.o fe0c392b8e8c0c55
26-
3 1161 1727560237093460004 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
27-
5 1259 1727560237191013615 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
28-
1259 1415 1727560237350185964 TinyCompiler 9f3800fbf957f75
29-
3 1133 1727561238978393011 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
30-
1133 1285 1727561239132726324 TinyCompiler 9f3800fbf957f75
31-
3 1031 1727561253625383444 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
32-
1031 1183 1727561253780652511 TinyCompiler 9f3800fbf957f75
33-
3 1270 1727561715409933799 CMakeFiles/TinyCompiler.dir/AbstractSyntaxTree.cpp.o fe0c392b8e8c0c55
34-
4 1425 1727561715564795531 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
35-
2 1022 1727561759677818211 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
36-
1022 1187 1727561759845138251 TinyCompiler 9f3800fbf957f75
37-
3 1282 1727561798048683921 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
38-
1282 1437 1727561798206465249 TinyCompiler 9f3800fbf957f75
39-
2 1320 1727561859058311993 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
40-
1320 1478 1727561859219903547 TinyCompiler 9f3800fbf957f75
41-
2 1262 1727561873241723146 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
42-
1262 1424 1727561873406931468 TinyCompiler 9f3800fbf957f75
43-
3 1102 1727561900369146304 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
44-
1102 1262 1727561900531484863 TinyCompiler 9f3800fbf957f75
45-
3 1856 1727562408030855560 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
46-
1857 2061 1727562408237444994 TinyCompiler 9f3800fbf957f75
47-
2 1239 1727562443770242292 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
48-
1239 1396 1727562443931310720 TinyCompiler 9f3800fbf957f75
2+
1124 1278 1727563782001495628 TinyCompiler 9f3800fbf957f75
3+
3 1301 1727563877631537568 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
494
3 1333 1727562661218518960 CMakeFiles/TinyCompiler.dir/AbstractSyntaxTree.cpp.o fe0c392b8e8c0c55
50-
3 1503 1727562661390072438 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
51-
2 987 1727562773463046202 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
52-
987 1134 1727562773614042666 TinyCompiler 9f3800fbf957f75
53-
4 1278 1727562793132575116 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
54-
1279 1448 1727562793306138978 TinyCompiler 9f3800fbf957f75
55-
3 1264 1727562827350976077 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
56-
1265 1428 1727562827517993200 TinyCompiler 9f3800fbf957f75
57-
3 1360 1727562840341673469 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
58-
1360 1526 1727562840515574957 TinyCompiler 9f3800fbf957f75
59-
2 1227 1727562865500878951 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
60-
1227 1381 1727562865658833489 TinyCompiler 9f3800fbf957f75
61-
3 1407 1727562969354390330 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
62-
1407 1566 1727562969516366637 TinyCompiler 9f3800fbf957f75
63-
3 1558 1727563013921490462 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
64-
1559 1729 1727563014096077634 TinyCompiler 9f3800fbf957f75
65-
3 1530 1727563090409782725 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
66-
1530 2049 1727563090929924215 TinyCompiler 9f3800fbf957f75
67-
3 1564 1727563113974679302 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
68-
1564 1785 1727563114197427327 TinyCompiler 9f3800fbf957f75
69-
4 1323 1727563207910172336 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
70-
1324 1484 1727563208076071160 TinyCompiler 9f3800fbf957f75
71-
2 1277 1727563242472119344 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
72-
1277 1434 1727563242632946100 TinyCompiler 9f3800fbf957f75
73-
5 1332 1727563254554482313 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
74-
1332 1492 1727563254718103083 TinyCompiler 9f3800fbf957f75
75-
3 1232 1727563287947469348 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
76-
1232 1385 1727563288103909291 TinyCompiler 9f3800fbf957f75
77-
3 1497 1727563302554820308 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
78-
1497 1666 1727563302726867913 TinyCompiler 9f3800fbf957f75
79-
3 1337 1727563355958632044 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
80-
1337 1497 1727563356122030313 TinyCompiler 9f3800fbf957f75
81-
2 1411 1727563371951465674 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
82-
1411 1568 1727563372111648011 TinyCompiler 9f3800fbf957f75
83-
3 1784 1727563401562212896 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
84-
1784 1981 1727563401761768386 TinyCompiler 9f3800fbf957f75
85-
2 1360 1727563458534615298 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
86-
1360 1517 1727563458694581259 TinyCompiler 9f3800fbf957f75
87-
3 1195 1727563554587798318 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
88-
1195 1354 1727563554749649747 TinyCompiler 9f3800fbf957f75
89-
2 1372 1727563580344438689 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
90-
1372 1531 1727563580507485831 TinyCompiler 9f3800fbf957f75
91-
2 1321 1727563652489120864 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
92-
1321 1480 1727563652650976334 TinyCompiler 9f3800fbf957f75
93-
2 1146 1727563676605691970 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
945
3 1190 1727563676652669828 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
95-
1190 1336 1727563676802091820 TinyCompiler 9f3800fbf957f75
96-
2 1035 1727563714242366135 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
97-
1035 1184 1727563714394465431 TinyCompiler 9f3800fbf957f75
98-
2 1123 1727563734645322393 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
99-
1123 1276 1727563734801999879 TinyCompiler 9f3800fbf957f75
6+
0 122 1727549300760608481 build.ninja a81c2310a19bffe8
7+
3 1145 1727563934494482442 CMakeFiles/TinyCompiler.dir/AbstractSyntaxTree.cpp.o fe0c392b8e8c0c55
8+
2 1210 1727563934563095033 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
9+
1210 1387 1727563934742289131 TinyCompiler 9f3800fbf957f75
10+
3 1066 1727563982752895030 CMakeFiles/TinyCompiler.dir/AbstractSyntaxTree.cpp.o fe0c392b8e8c0c55
11+
3 1123 1727563982811629780 CMakeFiles/TinyCompiler.dir/main.cpp.o 16c6829ca27c8450
12+
1123 1284 1727563982974159045 TinyCompiler 9f3800fbf957f75
13+
2 1601 1727564000459651575 CMakeFiles/TinyCompiler.dir/Tree.cpp.o d845c97f29969095
14+
1601 1801 1727564000663436586 TinyCompiler 9f3800fbf957f75
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
Start testing: Sep 28 18:48 EDT
1+
Start testing: Sep 28 18:53 EDT
22
----------------------------------------------------------
3-
End testing: Sep 28 18:48 EDT
3+
End testing: Sep 28 18:53 EDT

cmake-build-debug/TinyCompiler

64 Bytes
Binary file not shown.

main.cpp

+4-6
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,9 @@
66
#include "AbstractSyntaxTree.h"
77
using namespace std;
88
int main() {
9-
vector<string> input = {"let $y = 3", "let $x = $y + 10"};
9+
vector<string> input = {"let $y = 3", "let $x = $y * $y + 10"};
1010
AbstractSyntaxTree asl(input);
11-
asl.tree.generate(input, 0, (int)input.size() - 1);
12-
asl.tree.print();
13-
map<string,int> values;
14-
asl.tree.traverse_tree(values);
15-
cout << values["$x"] << " " << values["$y"] << '\n';
11+
asl.generate(input);
12+
// asl.tree.traverse_tree(values);
13+
cout << asl.values["$x"] << " " << asl.values["$y"] << '\n';
1614
}

0 commit comments

Comments
 (0)