Exp Exp
/ | \ / | \
/ | \ / | \
Exp + Exp Exp + Exp
/ | \ | | / | \
/ | \ | | / | \
Exp + Exp Num Num Exp + Exp
| | | | | |
| | | | | |
Num Num 4 2 Num Num
| | | |
| | | |
2 3 3 4
Exp ::= Exp + A | A
A ::= ~A | B
B ::= Num | (Exp)
Num ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Exp ::= let Ide = Num in Exp endinto
Exp ::= let Ide = Exp in Exp end
int k = t->get_left()->get_root()->get-value()into
int k = eval(t->get_left(),r)
x > 0 implies (x = 1 or x > 1 or 1/x > 1)
is always true, in fact, it is:
bool implies(bool name e1, bool name e2){
if (!e1)
return true;
else
return e2;
}
caller of p p I A.R. where p is declared
^ ------------------ ^
CL |___|_ | |
| | |
------------------ |
| _|______| SL
| |
------------------
|-->| ----- |<-|---|----|
| | x | 1 | | | | |
| | ----- | | | |
| | y | 2 | | | | |
| | ----- | | | |
CL | ------------------ | | |
| | | |
| q I | | |
| ------------------ | | |
|___|_ | | | |
| | | | |
------------------ | | |
| _|__|SL | |
| | | |
------------------ | |
|-->| ----- | | |
| | y | 1 | | | |
| | ----- | | |
CL | ------------------ | |
| | |
| r I | |
| ------------------ | |
|___|_ | | |
| | | |
------------------ | |
| _|______| SL |
| | |
------------------ |
|-->| ----- | |
| | x | 1 | | |
| | ----- | |
CL | ------------------ |
| |
| Q II |
| ------------------ |
|___|_ | |
| | |
------------------ |
| _|___________| SL
| |
------------------
| ----- |
| y | 2 | |
| ----- |
------------------
CL = Control Link
SL = Static Link