Pseudocode: Implement computation of expected type predicates

This commit is contained in:
Alexey Sedunov
2014-06-23 14:02:22 +04:00
parent 50228fa085
commit 5e2c2b4eca
87 changed files with 1154 additions and 803 deletions
@@ -20,28 +20,28 @@ fun assignments() : Unit {
t.x += 1
}
---------------------
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
1 <v0>: Int NEW()
2 <v1>: Int NEW()
x <v2>: Int NEW()
2 <v3>: Int NEW()
x += 2 <v4>: Int NEW(<v2>, <v3>)
true <v5>: Boolean NEW()
1 <v6>: Int NEW()
2 <v7>: Int NEW()
if (true) 1 else 2 <v8>: Int NEW(<v6>, <v7>)
true <v9>: Boolean NEW()
false <v10>: Boolean NEW()
true && false <v11>: Boolean NEW(<v9>, <v10>)
false <v12>: Boolean NEW()
true <v13>: Boolean NEW()
false && true <v14>: Boolean NEW(<v12>, <v13>)
Test() <v15>: Test NEW()
t <v16>: Test NEW()
1 <v17>: Int NEW()
t <v22>: Test NEW()
x <v19>: Int NEW(<v18>)
t.x <v19>: Int COPY
1 <v20>: Int NEW()
t.x += 1 <v21>: Int 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>: Int COPY
=====================