Pseudocode: Bind result values to elements retrieved from resolved calls

This commit is contained in:
Alexey Sedunov
2014-06-19 19:32:56 +04:00
parent 4debb6eb6a
commit 7c837909d8
4 changed files with 93 additions and 61 deletions
@@ -4,6 +4,8 @@ fun foo() {
i++
}
---------------------
1 <v0> NEW()
i <v1> NEW()
1 <v0> NEW()
i <v1> NEW()
i++ <v2> NEW(<v1>)
{ var i = 1 i++ } <v2> COPY
=====================
@@ -20,25 +20,28 @@ fun assignments() : Unit {
t.x += 1
}
---------------------
1 <v0> NEW()
2 <v1> NEW()
x <v2> NEW()
2 <v3> NEW()
true <v5> NEW()
1 <v6> NEW()
2 <v7> NEW()
if (true) 1 else 2 <v8> NEW(<v6>, <v7>)
true <v9> NEW()
false <v10> NEW()
true && false <v11> NEW(<v9>, <v10>)
false <v12> NEW()
true <v13> NEW()
false && true <v14> NEW(<v12>, <v13>)
Test() <v15> NEW()
t <v16> NEW()
1 <v17> NEW()
t <v22> NEW()
x <v19> NEW(<v18>)
t.x <v19> COPY
1 <v20> NEW()
1 <v0> NEW()
2 <v1> NEW()
x <v2> NEW()
2 <v3> NEW()
x += 2 <v4> NEW(<v2>, <v3>)
true <v5> NEW()
1 <v6> NEW()
2 <v7> NEW()
if (true) 1 else 2 <v8> NEW(<v6>, <v7>)
true <v9> NEW()
false <v10> NEW()
true && false <v11> NEW(<v9>, <v10>)
false <v12> NEW()
true <v13> NEW()
false && true <v14> NEW(<v12>, <v13>)
Test() <v15> NEW()
t <v16> NEW()
1 <v17> NEW()
t <v22> NEW()
x <v19> NEW(<v18>)
t.x <v19> COPY
1 <v20> NEW()
t.x += 1 <v21> NEW(<v19>, <v20>)
{ var x = 1 x = 2 x += 2 x = if (true) 1 else 2 val y = true && false val z = false && true val t = Test(); t.x = 1 t.x += 1 } <v21> COPY
=====================