@@ -33,6 +33,19 @@ void Tree::printTree(Token* head, Token* prevToken){
33
33
head = handleAssignment (head);
34
34
prevToken = nullptr ;
35
35
36
+ } else if (head->getValue () == " printf" ){
37
+ ignore = true ;
38
+ std::cout << " PRINTF" ;
39
+ while (head->getSibling () != nullptr ) {
40
+ head = head->getSibling ();
41
+ if (head->getType () != " L_PAREN" && head->getType () != " R_PAREN" && head->getType () != " DOUBLE_QUOTE" && head->getType () != " COMMA" && head->getType () != " SEMICOLON" ) {
42
+ std::cout << " ----> " ;
43
+ std::cout << head->getValue ();
44
+ }
45
+ }
46
+ std::cout << " \n |\n |\n |\n |\n v\n " ;
47
+ prevToken = nullptr ;
48
+
36
49
} else if (head->getValue () == " for" ){
37
50
short forCount = 0 ;
38
51
ignore = false ;
@@ -41,12 +54,14 @@ void Tree::printTree(Token* head, Token* prevToken){
41
54
head = head->getSibling ();
42
55
head = handleAssignment (head);
43
56
prevToken = nullptr ;
44
- std::cout << " \n |\n |\n |\n |\n v\n " ;
57
+ if (forCount+1 < 3 ) {
58
+ std::cout << " \n |\n |\n |\n |\n v\n " ;
59
+ }
45
60
forCount++;
46
61
}
47
62
48
63
}else if (contains (varTypes, prevToken->getValue ())) {
49
- ignore = false ;
64
+ ignore = true ; // this was false but i think should be true
50
65
std::cout << " DECLARATION" ;
51
66
if (head->getSibling () != nullptr && head->getSibling ()->getValue () == " ," ) {
52
67
while (head->getSibling () != nullptr ) {
@@ -55,6 +70,7 @@ void Tree::printTree(Token* head, Token* prevToken){
55
70
std::cout << " \n |\n |\n |\n |\n v\n DECLARATION" ;
56
71
}
57
72
}
73
+ std::cout << " \n |\n |\n |\n |\n v\n " ;
58
74
}
59
75
} else if (head->getType () == " IDENTIFIER" ) {
60
76
if (head->getSibling () != nullptr && head->getSibling ()->getValue () == " =" ) {
@@ -65,7 +81,7 @@ void Tree::printTree(Token* head, Token* prevToken){
65
81
prevToken = nullptr ;
66
82
}
67
83
} else if (head->getSibling () == nullptr && head->getChild () != nullptr && head->getValue () == " ;" ){
68
- std::cout << " \n |\n |\n |\n |\n v\n " ;
84
+ std::cout << " \n |\n |\n |\n |\n v\n " ;
69
85
}
70
86
if (head->getSibling () != nullptr ) {
71
87
if (!ignore){
@@ -75,7 +91,7 @@ void Tree::printTree(Token* head, Token* prevToken){
75
91
return printTree (head->getSibling (), head);
76
92
} else if (head->getChild () != nullptr ) {
77
93
if (!ignore) {
78
- std::cout << " \n |\n |\n |\n |\n v\n " ;
94
+ std::cout << " \n |\n |\n |\n |\n v\n " ;
79
95
}
80
96
return printTree (head->getChild (), head);
81
97
}
0 commit comments