Pseudocode: Generate pseudo-values for implicit receivers

This commit is contained in:
Alexey Sedunov
2014-06-10 13:49:56 +04:00
parent 4e4675d24a
commit 45bd3a520e
21 changed files with 330 additions and 296 deletions
@@ -453,23 +453,29 @@ public class JetControlFlowProcessor {
return; return;
} }
PseudoValue rhsValue = rhsDeferredValue.invoke();
Map<PseudoValue, ReceiverValue> receiverValues = SmartFMap.emptyMap(); Map<PseudoValue, ReceiverValue> receiverValues = SmartFMap.emptyMap();
AccessTarget accessTarget = AccessTarget.BlackBox.instance$; AccessTarget accessTarget = AccessTarget.BlackBox.instance$;
boolean unsupported = false;
if (left instanceof JetSimpleNameExpression || left instanceof JetQualifiedExpression) { if (left instanceof JetSimpleNameExpression || left instanceof JetQualifiedExpression) {
accessTarget = getResolvedCallAccessTarget(PsiUtilPackage.getQualifiedElementSelector(left)); accessTarget = getResolvedCallAccessTarget(PsiUtilPackage.getQualifiedElementSelector(left));
if (accessTarget instanceof AccessTarget.Call) { if (accessTarget instanceof AccessTarget.Call) {
receiverValues = getReceiverValues(((AccessTarget.Call) accessTarget).getResolvedCall(), true); receiverValues = getReceiverValues(lhs, ((AccessTarget.Call) accessTarget).getResolvedCall(), true);
} }
} }
else if (left instanceof JetProperty) { else if (left instanceof JetProperty) {
accessTarget = getDeclarationAccessTarget(left); accessTarget = getDeclarationAccessTarget(left);
} }
else { else {
builder.unsupported(parentExpression); // TODO unsupported = true;
} }
recordWrite(left, accessTarget, rhsValue, receiverValues, parentExpression); PseudoValue rhsValue = rhsDeferredValue.invoke();
if (unsupported) {
builder.unsupported(parentExpression); // TODO
}
else {
recordWrite(left, accessTarget, rhsValue, receiverValues, parentExpression);
}
} }
private void generateArrayAssignment( private void generateArrayAssignment(
@@ -491,7 +497,7 @@ public class JetControlFlowProcessor {
generateInstructions(lhs.getArrayExpression(), NOT_IN_CONDITION); generateInstructions(lhs.getArrayExpression(), NOT_IN_CONDITION);
Map<PseudoValue, ReceiverValue> receiverValues = getReceiverValues(setResolvedCall, false); Map<PseudoValue, ReceiverValue> receiverValues = getReceiverValues(lhs, setResolvedCall, false);
SmartFMap<PseudoValue, ValueParameterDescriptor> argumentValues = SmartFMap<PseudoValue, ValueParameterDescriptor> argumentValues =
getArraySetterArguments(rhsDeferredValue, setResolvedCall); getArraySetterArguments(rhsDeferredValue, setResolvedCall);
@@ -1139,7 +1145,7 @@ public class JetControlFlowProcessor {
entry, entry,
entry, entry,
resolvedCall, resolvedCall,
getReceiverValues(resolvedCall, false), getReceiverValues(initializer, resolvedCall, false),
Collections.<PseudoValue, ValueParameterDescriptor>emptyMap() Collections.<PseudoValue, ValueParameterDescriptor>emptyMap()
).getOutputValue() ).getOutputValue()
: createSyntheticValue(entry, initializer); : createSyntheticValue(entry, initializer);
@@ -1392,7 +1398,7 @@ public class JetControlFlowProcessor {
} }
CallableDescriptor resultingDescriptor = resolvedCall.getResultingDescriptor(); CallableDescriptor resultingDescriptor = resolvedCall.getResultingDescriptor();
Map<PseudoValue, ReceiverValue> receivers = getReceiverValues(resolvedCall, true); Map<PseudoValue, ReceiverValue> receivers = getReceiverValues(callExpression, resolvedCall, true);
SmartFMap<PseudoValue, ValueParameterDescriptor> parameterValues = SmartFMap.emptyMap(); SmartFMap<PseudoValue, ValueParameterDescriptor> parameterValues = SmartFMap.emptyMap();
for (ValueParameterDescriptor parameterDescriptor : resultingDescriptor.getValueParameters()) { for (ValueParameterDescriptor parameterDescriptor : resultingDescriptor.getValueParameters()) {
ResolvedValueArgument argument = resolvedCall.getValueArguments().get(parameterDescriptor); ResolvedValueArgument argument = resolvedCall.getValueArguments().get(parameterDescriptor);
@@ -1410,15 +1416,19 @@ public class JetControlFlowProcessor {
} }
@NotNull @NotNull
private Map<PseudoValue, ReceiverValue> getReceiverValues(ResolvedCall<?> resolvedCall, boolean generateInstructions) { private Map<PseudoValue, ReceiverValue> getReceiverValues(
JetExpression callExpression,
ResolvedCall<?> resolvedCall,
boolean generateInstructions) {
SmartFMap<PseudoValue, ReceiverValue> receiverValues = SmartFMap.emptyMap(); SmartFMap<PseudoValue, ReceiverValue> receiverValues = SmartFMap.emptyMap();
receiverValues = getReceiverValues(resolvedCall.getThisObject(), generateInstructions, receiverValues); receiverValues = getReceiverValues(callExpression, resolvedCall.getThisObject(), generateInstructions, receiverValues);
receiverValues = getReceiverValues(resolvedCall.getReceiverArgument(), generateInstructions, receiverValues); receiverValues = getReceiverValues(callExpression, resolvedCall.getReceiverArgument(), generateInstructions, receiverValues);
return receiverValues; return receiverValues;
} }
@NotNull @NotNull
private SmartFMap<PseudoValue, ReceiverValue> getReceiverValues( private SmartFMap<PseudoValue, ReceiverValue> getReceiverValues(
JetExpression callExpression,
ReceiverValue receiver, ReceiverValue receiver,
boolean generateInstructions, boolean generateInstructions,
SmartFMap<PseudoValue, ReceiverValue> receiverValues SmartFMap<PseudoValue, ReceiverValue> receiverValues
@@ -1426,7 +1436,9 @@ public class JetControlFlowProcessor {
if (!receiver.exists()) return receiverValues; if (!receiver.exists()) return receiverValues;
if (receiver instanceof ThisReceiver) { if (receiver instanceof ThisReceiver) {
// TODO: Receiver is passed implicitly: no expression to tie the read to if (generateInstructions) {
receiverValues = receiverValues.plus(createSyntheticValue(callExpression), receiver);
}
} }
else if (receiver instanceof ExpressionReceiver) { else if (receiver instanceof ExpressionReceiver) {
JetExpression expression = ((ExpressionReceiver) receiver).getExpression(); JetExpression expression = ((ExpressionReceiver) receiver).getExpression();
@@ -7,15 +7,16 @@ class A {
} }
--------------------- ---------------------
L0: L0:
1 <START> INIT: in: {} out: {} 1 <START> INIT: in: {} out: {}
2 mark({ x = 1 }) 2 mark({ x = 1 })
r(1) -> <v0> USE: in: {x=ONLY_WRITTEN_NEVER_READ} out: {x=ONLY_WRITTEN_NEVER_READ} magic(x) -> <v0>
w(x|<v0>) INIT: in: {} out: {x=I} USE: in: {} out: {x=ONLY_WRITTEN_NEVER_READ} r(1) -> <v1> USE: in: {x=ONLY_WRITTEN_NEVER_READ} out: {x=ONLY_WRITTEN_NEVER_READ}
1 v(val x: Int) INIT: in: {x=I} out: {x=ID} w(x|<v0>, <v1>) INIT: in: {} out: {x=I} USE: in: {} out: {x=ONLY_WRITTEN_NEVER_READ}
1 v(val x: Int) INIT: in: {x=I} out: {x=ID}
L1: L1:
<END> INIT: in: {x=ID} out: {x=ID} <END> INIT: in: {x=ID} out: {x=ID}
error: error:
<ERROR> INIT: in: {} out: {} <ERROR> INIT: in: {} out: {}
sink: sink:
<SINK> INIT: in: {x=ID} out: {x=ID} USE: in: {} out: {} <SINK> INIT: in: {x=ID} out: {x=ID} USE: in: {} out: {}
===================== =====================
@@ -6,5 +6,5 @@ class A {
val x: Int val x: Int
} }
--------------------- ---------------------
1 <v0> NEW() 1 <v1> NEW()
===================== =====================
@@ -39,9 +39,9 @@ L0:
mark(foo.c) mark(foo.c)
r(foo) -> <v1> USE: in: {c=READ, foo=READ} out: {c=READ, foo=READ} r(foo) -> <v1> USE: in: {c=READ, foo=READ} out: {c=READ, foo=READ}
r(c|<v1>) -> <v2> USE: in: {c=ONLY_WRITTEN_NEVER_READ, foo=READ} out: {c=READ, foo=READ} r(c|<v1>) -> <v2> USE: in: {c=ONLY_WRITTEN_NEVER_READ, foo=READ} out: {c=READ, foo=READ}
r(2) -> <v3> USE: in: {c=ONLY_WRITTEN_NEVER_READ, foo=READ} out: {c=ONLY_WRITTEN_NEVER_READ, foo=READ} r(foo) -> <v3> USE: in: {c=ONLY_WRITTEN_NEVER_READ} out: {c=ONLY_WRITTEN_NEVER_READ, foo=READ}
r(foo) -> <v4> USE: in: {c=ONLY_WRITTEN_NEVER_READ} out: {c=ONLY_WRITTEN_NEVER_READ, foo=READ} r(2) -> <v4> USE: in: {c=ONLY_WRITTEN_NEVER_READ} out: {c=ONLY_WRITTEN_NEVER_READ}
w(foo.c|<v4>, <v3>) INIT: in: {foo=ID} out: {c=I, foo=ID} USE: in: {} out: {c=ONLY_WRITTEN_NEVER_READ} w(foo.c|<v3>, <v4>) INIT: in: {foo=ID} out: {c=I, foo=ID} USE: in: {} out: {c=ONLY_WRITTEN_NEVER_READ}
r(42) -> <v5> INIT: in: {c=I, foo=ID} out: {c=I, foo=ID} r(42) -> <v5> INIT: in: {c=I, foo=ID} out: {c=I, foo=ID}
L1: L1:
1 <END> 1 <END>
@@ -21,8 +21,8 @@ fun bar(foo: Foo) {
foo <v1> NEW() foo <v1> NEW()
c <v2> NEW(<v1>) c <v2> NEW(<v1>)
foo.c <v2> COPY foo.c <v2> COPY
foo <v4> NEW() foo <v3> NEW()
2 <v3> NEW() 2 <v4> NEW()
42 <v5> NEW() 42 <v5> NEW()
{ foo.c foo.c = 2 42 } <v5> COPY { foo.c foo.c = 2 42 } <v5> COPY
===================== =====================
@@ -33,15 +33,16 @@ L3:
w(x|<v0>) INIT: in: {x=D} out: {x=ID} w(x|<v0>) INIT: in: {x=D} out: {x=ID}
3 mark(sum(x - 1) + x) INIT: in: {x=ID} out: {x=ID} 3 mark(sum(x - 1) + x) INIT: in: {x=ID} out: {x=ID}
mark(sum(x - 1) + x) mark(sum(x - 1) + x)
mark(sum(x - 1)) USE: in: {sum=READ, x=READ} out: {sum=READ, x=READ} mark(sum(x - 1))
r(sum) -> <v1> USE: in: {x=READ} out: {sum=READ, x=READ} magic(sum) -> <v1> USE: in: {sum=READ, x=READ} out: {sum=READ, x=READ}
r(sum|<v1>) -> <v2> USE: in: {x=READ} out: {sum=READ, x=READ}
mark(x - 1) mark(x - 1)
r(x) -> <v2> r(x) -> <v3>
r(1) -> <v3> r(1) -> <v4>
call(-, minus|<v2>, <v3>) -> <v4> call(-, minus|<v3>, <v4>) -> <v5>
call(sum, invoke|<v1>, <v4>) -> <v5> USE: in: {x=READ} out: {x=READ} call(sum, invoke|<v2>, <v5>) -> <v6> USE: in: {x=READ} out: {x=READ}
r(x) -> <v6> USE: in: {} out: {x=READ} r(x) -> <v7> USE: in: {} out: {x=READ}
call(+, plus|<v5>, <v6>) -> <v7> call(+, plus|<v6>, <v7>) -> <v8>
L4: L4:
2 <END> 2 <END>
error: error:
@@ -80,16 +81,18 @@ L0:
1 <START> INIT: in: {} out: {} 1 <START> INIT: in: {} out: {}
v(val obj: A = object: A(obj) { { val x = obj } fun foo() { val y = obj } }) INIT: in: {} out: {obj=D} v(val obj: A = object: A(obj) { { val x = obj } fun foo() { val y = obj } }) INIT: in: {} out: {obj=D}
mark(object: A(obj) { { val x = obj } fun foo() { val y = obj } }) INIT: in: {obj=D} out: {obj=D} mark(object: A(obj) { { val x = obj } fun foo() { val y = obj } }) INIT: in: {obj=D} out: {obj=D}
r(obj) -> <v0> magic(obj) -> <v0>
r(obj|<v0>) -> <v1>
2 mark({ val x = obj }) 2 mark({ val x = obj })
v(val x = obj) INIT: in: {obj=D} out: {obj=D, x=D} v(val x = obj) INIT: in: {obj=D} out: {obj=D, x=D}
r(obj) -> <v1> INIT: in: {obj=D, x=D} out: {obj=D, x=D} magic(obj) -> <v2> INIT: in: {obj=D, x=D} out: {obj=D, x=D}
w(x|<v1>) INIT: in: {obj=D, x=D} out: {obj=D, x=ID} r(obj|<v2>) -> <v3>
w(x|<v3>) INIT: in: {obj=D, x=D} out: {obj=D, x=ID}
1 jmp?(L2) INIT: in: {obj=D} out: {obj=D} 1 jmp?(L2) INIT: in: {obj=D} out: {obj=D}
d(fun foo() { val y = obj }) USE: in: {obj=READ} out: {obj=READ} d(fun foo() { val y = obj }) USE: in: {obj=READ} out: {obj=READ}
L2: L2:
r(object: A(obj) { { val x = obj } fun foo() { val y = obj } }) -> <v2> r(object: A(obj) { { val x = obj } fun foo() { val y = obj } }) -> <v4>
w(obj|<v2>) INIT: in: {obj=D} out: {obj=ID} w(obj|<v4>) INIT: in: {obj=D} out: {obj=ID}
L1: L1:
<END> INIT: in: {obj=ID} out: {obj=ID} <END> INIT: in: {obj=ID} out: {obj=ID}
error: error:
@@ -105,9 +108,10 @@ fun foo() {
L3: L3:
2 <START> INIT: in: {} out: {} 2 <START> INIT: in: {} out: {}
3 mark({ val y = obj }) 3 mark({ val y = obj })
v(val y = obj) INIT: in: {} out: {y=D} USE: in: {obj=READ} out: {obj=READ} v(val y = obj) INIT: in: {} out: {y=D}
r(obj) -> <v0> INIT: in: {y=D} out: {y=D} USE: in: {} out: {obj=READ} magic(obj) -> <v0> INIT: in: {y=D} out: {y=D} USE: in: {obj=READ} out: {obj=READ}
w(y|<v0>) INIT: in: {y=D} out: {y=ID} r(obj|<v0>) -> <v1> USE: in: {} out: {obj=READ}
w(y|<v1>) INIT: in: {y=D} out: {y=ID}
L4: L4:
2 <END> INIT: in: {} out: {} 2 <END> INIT: in: {} out: {}
error: error:
@@ -123,11 +127,12 @@ class TestOther {
L0: L0:
1 <START> INIT: in: {} out: {} 1 <START> INIT: in: {} out: {}
v(val x: Int = x + 1) INIT: in: {} out: {x=D} v(val x: Int = x + 1) INIT: in: {} out: {x=D}
mark(x + 1) INIT: in: {x=D} out: {x=D} USE: in: {x=READ} out: {x=READ} mark(x + 1) INIT: in: {x=D} out: {x=D}
r(x) -> <v0> USE: in: {} out: {x=READ} magic(x) -> <v0> USE: in: {x=READ} out: {x=READ}
r(1) -> <v1> r(x|<v0>) -> <v1> USE: in: {} out: {x=READ}
call(+, plus|<v0>, <v1>) -> <v2> r(1) -> <v2>
w(x|<v2>) INIT: in: {x=D} out: {x=ID} call(+, plus|<v1>, <v2>) -> <v3>
w(x|<v3>) INIT: in: {x=D} out: {x=ID}
L1: L1:
<END> INIT: in: {x=ID} out: {x=ID} <END> INIT: in: {x=ID} out: {x=ID}
error: error:
@@ -12,14 +12,14 @@ class TestFunctionLiteral {
sum(x - 1) + x sum(x - 1) + x
} }
--------------------- ---------------------
sum <v1> NEW() sum <v2> NEW(<v1>)
x <v2> NEW() x <v3> NEW()
1 <v3> NEW() 1 <v4> NEW()
x - 1 <v4> NEW(<v2>, <v3>) x - 1 <v5> NEW(<v3>, <v4>)
sum(x - 1) <v5> NEW(<v1>, <v4>) sum(x - 1) <v6> NEW(<v2>, <v5>)
x <v6> NEW() x <v7> NEW()
sum(x - 1) + x <v7> NEW(<v5>, <v6>) sum(x - 1) + x <v8> NEW(<v6>, <v7>)
sum(x - 1) + x <v7> COPY sum(x - 1) + x <v8> COPY
===================== =====================
== A == == A ==
open class A(val a: A) open class A(val a: A)
@@ -37,23 +37,23 @@ class TestObjectLiteral {
} }
} }
--------------------- ---------------------
obj <v0> NEW() obj <v1> NEW(<v0>)
obj <v1> NEW() obj <v3> NEW(<v2>)
object: A(obj) { { val x = obj } fun foo() { val y = obj } } <v2> NEW() object: A(obj) { { val x = obj } fun foo() { val y = obj } } <v4> NEW()
===================== =====================
== foo == == foo ==
fun foo() { fun foo() {
val y = obj val y = obj
} }
--------------------- ---------------------
obj <v0> NEW() obj <v1> NEW(<v0>)
===================== =====================
== TestOther == == TestOther ==
class TestOther { class TestOther {
val x: Int = x + 1 val x: Int = x + 1
} }
--------------------- ---------------------
x <v0> NEW() x <v1> NEW(<v0>)
1 <v1> NEW() 1 <v2> NEW()
x + 1 <v2> NEW(<v0>, <v1>) x + 1 <v3> NEW(<v1>, <v2>)
===================== =====================
@@ -22,13 +22,14 @@ L0:
w(x|<v1>) INIT: in: {x=D} out: {x=ID} w(x|<v1>) INIT: in: {x=D} out: {x=ID}
3 mark({ val a = x }) INIT: in: {x=ID} out: {x=ID} 3 mark({ val a = x }) INIT: in: {x=ID} out: {x=ID}
v(val a = x) INIT: in: {x=ID} out: {a=D, x=ID} v(val a = x) INIT: in: {x=ID} out: {a=D, x=ID}
r(x) -> <v2> INIT: in: {a=D, x=ID} out: {a=D, x=ID} magic(x) -> <v2> INIT: in: {a=D, x=ID} out: {a=D, x=ID}
w(a|<v2>) INIT: in: {a=D, x=ID} out: {a=ID, x=ID} r(x|<v2>) -> <v3>
w(a|<v3>) INIT: in: {a=D, x=ID} out: {a=ID, x=ID}
2 jmp?(L2) INIT: in: {x=ID} out: {x=ID} 2 jmp?(L2) INIT: in: {x=ID} out: {x=ID}
d(fun foo() { val b = x }) USE: in: {x=READ} out: {x=READ} d(fun foo() { val b = x }) USE: in: {x=READ} out: {x=READ}
L2: L2:
mark("after") mark("after")
r("after") -> <v3> r("after") -> <v4>
L1: L1:
1 <END> INIT: in: {} out: {} 1 <END> INIT: in: {} out: {}
error: error:
@@ -44,9 +45,10 @@ fun foo() {
L3: L3:
3 <START> INIT: in: {} out: {} 3 <START> INIT: in: {} out: {}
4 mark({ val b = x }) 4 mark({ val b = x })
v(val b = x) INIT: in: {} out: {b=D} USE: in: {x=READ} out: {x=READ} v(val b = x) INIT: in: {} out: {b=D}
r(x) -> <v0> INIT: in: {b=D} out: {b=D} USE: in: {} out: {x=READ} magic(x) -> <v0> INIT: in: {b=D} out: {b=D} USE: in: {x=READ} out: {x=READ}
w(b|<v0>) INIT: in: {b=D} out: {b=ID} r(x|<v0>) -> <v1> USE: in: {} out: {x=READ}
w(b|<v1>) INIT: in: {b=D} out: {b=ID}
L4: L4:
3 <END> INIT: in: {} out: {} 3 <END> INIT: in: {} out: {}
error: error:
@@ -13,14 +13,14 @@ fun foo() {
} }
--------------------- ---------------------
"before" <v0> NEW() "before" <v0> NEW()
x <v2> NEW() x <v3> NEW(<v2>)
"after" <v3> NEW() "after" <v4> NEW()
{ "before" class A(val x: Int) { { val a = x } fun foo() { val b = x } } "after" } <v3> COPY { "before" class A(val x: Int) { { val a = x } fun foo() { val b = x } } "after" } <v4> COPY
===================== =====================
== foo == == foo ==
fun foo() { fun foo() {
val b = x val b = x
} }
--------------------- ---------------------
x <v0> NEW() x <v1> NEW(<v0>)
===================== =====================
@@ -35,9 +35,10 @@ get() {
--------------------- ---------------------
L3: L3:
3 <START> INIT: in: {} out: {} 3 <START> INIT: in: {} out: {}
4 mark({ return $a }) USE: in: {a=READ} out: {a=READ} 4 mark({ return $a })
r($a) -> <v0> USE: in: {} out: {a=READ} magic($a) -> <v0> USE: in: {a=READ} out: {a=READ}
ret(*|<v0>) L4 r($a|<v0>) -> <v1> USE: in: {} out: {a=READ}
ret(*|<v1>) L4
L4: L4:
3 <END> 3 <END>
error: error:
@@ -55,9 +56,10 @@ L6:
v(v: Int) INIT: in: {} out: {v=D} v(v: Int) INIT: in: {} out: {v=D}
magic(v: Int) -> <v0> INIT: in: {v=D} out: {v=D} magic(v: Int) -> <v0> INIT: in: {v=D} out: {v=D}
w(v|<v0>) INIT: in: {v=D} out: {v=ID} w(v|<v0>) INIT: in: {v=D} out: {v=ID}
4 mark({ $a = v }) INIT: in: {v=ID} out: {v=ID} USE: in: {a=ONLY_WRITTEN_NEVER_READ, v=READ} out: {a=ONLY_WRITTEN_NEVER_READ, v=READ} 4 mark({ $a = v }) INIT: in: {v=ID} out: {v=ID}
r(v) -> <v1> USE: in: {a=ONLY_WRITTEN_NEVER_READ} out: {a=ONLY_WRITTEN_NEVER_READ, v=READ} magic($a) -> <v1> USE: in: {a=ONLY_WRITTEN_NEVER_READ, v=READ} out: {a=ONLY_WRITTEN_NEVER_READ, v=READ}
w($a|<v1>) INIT: in: {v=ID} out: {a=I, v=ID} USE: in: {} out: {a=ONLY_WRITTEN_NEVER_READ} r(v) -> <v2> USE: in: {a=ONLY_WRITTEN_NEVER_READ} out: {a=ONLY_WRITTEN_NEVER_READ, v=READ}
w($a|<v1>, <v2>) INIT: in: {v=ID} out: {a=I, v=ID} USE: in: {} out: {a=ONLY_WRITTEN_NEVER_READ}
L7: L7:
3 <END> INIT: in: {a=I, v=ID} out: {a=I, v=ID} 3 <END> INIT: in: {a=I, v=ID} out: {a=I, v=ID}
error: error:
@@ -17,12 +17,12 @@ get() {
return $a return $a
} }
--------------------- ---------------------
$a <v0> NEW() $a <v1> NEW(<v0>)
===================== =====================
== set_a == == set_a ==
set(v: Int) { set(v: Int) {
$a = v $a = v
} }
--------------------- ---------------------
v <v1> NEW() v <v2> NEW()
===================== =====================
@@ -22,12 +22,14 @@ L0:
w(k|<v0>) w(k|<v0>)
v(val i: Int) v(val i: Int)
2 mark({ $i = 12 }) 2 mark({ $i = 12 })
r(12) -> <v1> magic($i) -> <v1>
w($i|<v1>) r(12) -> <v2>
w($i|<v1>, <v2>)
1 v(val j: Int get() = 20) 1 v(val j: Int get() = 20)
2 mark({ $i = 13 }) 2 mark({ $i = 13 })
r(13) -> <v2> magic($i) -> <v3>
w($i|<v2>) r(13) -> <v4>
w($i|<v3>, <v4>)
L1: L1:
1 <END> NEXT:[<SINK>] 1 <END> NEXT:[<SINK>]
error: error:
@@ -16,6 +16,6 @@ class AnonymousInitializers() {
} }
--------------------- ---------------------
34 <v0> NEW() 34 <v0> NEW()
12 <v1> NEW() 12 <v2> NEW()
13 <v2> NEW() 13 <v4> NEW()
===================== =====================
@@ -63,10 +63,11 @@ L0:
mark(object { val x : Int { $x = 1 } }) mark(object { val x : Int { $x = 1 } })
v(val x : Int) v(val x : Int)
3 mark({ $x = 1 }) 3 mark({ $x = 1 })
r(1) -> <v0> magic($x) -> <v0>
w($x|<v0>) r(1) -> <v1>
2 r(object { val x : Int { $x = 1 } }) -> <v1> w($x|<v0>, <v1>)
w(a|<v1>) 2 r(object { val x : Int { $x = 1 } }) -> <v2>
w(a|<v2>)
L1: L1:
1 <END> NEXT:[<SINK>] 1 <END> NEXT:[<SINK>]
error: error:
@@ -86,14 +87,15 @@ L0:
1 <START> 1 <START>
v(val x : Int) v(val x : Int)
2 mark({ $x = 1 }) 2 mark({ $x = 1 })
r(1) -> <v0> magic($x) -> <v0>
w($x|<v0>) r(1) -> <v1>
w($x|<v0>, <v1>)
L1: L1:
1 <END> NEXT:[<SINK>] 1 <END> NEXT:[<SINK>]
error: error:
<ERROR> PREV:[] <ERROR> PREV:[]
sink: sink:
<SINK> PREV:[<ERROR>, <END>] <SINK> PREV:[<ERROR>, <END>]
===================== =====================
== test2 == == test2 ==
fun test2() { fun test2() {
@@ -159,8 +161,9 @@ fun inner_bar() {
L3: L3:
3 <START> 3 <START>
4 mark({ y = 10 }) 4 mark({ y = 10 })
r(10) -> <v0> magic(y) -> <v0>
w(y|<v0>) r(10) -> <v1>
w(y|<v0>, <v1>)
L4: L4:
3 <END> NEXT:[<SINK>] 3 <END> NEXT:[<SINK>]
error: error:
@@ -190,13 +193,14 @@ L0:
v(val x : Int) v(val x : Int)
v(val y : Int) v(val y : Int)
3 mark({ $x = 1 }) 3 mark({ $x = 1 })
r(1) -> <v0> magic($x) -> <v0>
w($x|<v0>) r(1) -> <v1>
2 jmp?(L2) NEXT:[r(object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } }) -> <v1>, d(fun ggg() { y = 10 })] w($x|<v0>, <v1>)
2 jmp?(L2) NEXT:[r(object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } }) -> <v2>, d(fun ggg() { y = 10 })]
d(fun ggg() { y = 10 }) NEXT:[<SINK>] d(fun ggg() { y = 10 }) NEXT:[<SINK>]
L2: L2:
r(object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } }) -> <v1> PREV:[jmp?(L2)] r(object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } }) -> <v2> PREV:[jmp?(L2)]
w(a|<v1>) w(a|<v2>)
L1: L1:
1 <END> NEXT:[<SINK>] 1 <END> NEXT:[<SINK>]
error: error:
@@ -212,8 +216,9 @@ fun ggg() {
L3: L3:
3 <START> 3 <START>
4 mark({ y = 10 }) 4 mark({ y = 10 })
r(10) -> <v0> magic(y) -> <v0>
w(y|<v0>) r(10) -> <v1>
w(y|<v0>, <v1>)
L4: L4:
3 <END> NEXT:[<SINK>] 3 <END> NEXT:[<SINK>]
error: error:
@@ -246,16 +251,17 @@ L0:
r(1) -> <v0> r(1) -> <v0>
w(x|<v0>) w(x|<v0>)
3 mark({ $x = 2 }) 3 mark({ $x = 2 })
r(2) -> <v1> magic($x) -> <v1>
w($x|<v1>) r(2) -> <v2>
w($x|<v1>, <v2>)
2 jmp?(L2) NEXT:[jmp?(L5), d(fun foo() { x = 3 })] 2 jmp?(L2) NEXT:[jmp?(L5), d(fun foo() { x = 3 })]
d(fun foo() { x = 3 }) NEXT:[<SINK>] d(fun foo() { x = 3 }) NEXT:[<SINK>]
L2: L2:
jmp?(L5) NEXT:[r(object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } }) -> <v2>, d(fun bar() { x = 4 })] PREV:[jmp?(L2)] jmp?(L5) NEXT:[r(object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } }) -> <v3>, d(fun bar() { x = 4 })] PREV:[jmp?(L2)]
d(fun bar() { x = 4 }) NEXT:[<SINK>] d(fun bar() { x = 4 }) NEXT:[<SINK>]
L5: L5:
r(object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } }) -> <v2> PREV:[jmp?(L5)] r(object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } }) -> <v3> PREV:[jmp?(L5)]
w(a|<v2>) w(a|<v3>)
L1: L1:
1 <END> NEXT:[<SINK>] 1 <END> NEXT:[<SINK>]
error: error:
@@ -271,14 +277,15 @@ fun foo() {
L3: L3:
3 <START> 3 <START>
4 mark({ x = 3 }) 4 mark({ x = 3 })
r(3) -> <v0> magic(x) -> <v0>
w(x|<v0>) r(3) -> <v1>
w(x|<v0>, <v1>)
L4: L4:
3 <END> NEXT:[<SINK>] 3 <END> NEXT:[<SINK>]
error: error:
<ERROR> PREV:[] <ERROR> PREV:[]
sink: sink:
<SINK> PREV:[<ERROR>, <END>] <SINK> PREV:[<ERROR>, <END>]
===================== =====================
== bar == == bar ==
fun bar() { fun bar() {
@@ -288,12 +295,13 @@ fun bar() {
L6: L6:
3 <START> 3 <START>
4 mark({ x = 4 }) 4 mark({ x = 4 })
r(4) -> <v0> magic(x) -> <v0>
w(x|<v0>) r(4) -> <v1>
w(x|<v0>, <v1>)
L7: L7:
3 <END> NEXT:[<SINK>] 3 <END> NEXT:[<SINK>]
error: error:
<ERROR> PREV:[] <ERROR> PREV:[]
sink: sink:
<SINK> PREV:[<ERROR>, <END>] <SINK> PREV:[<ERROR>, <END>]
===================== =====================
@@ -33,8 +33,8 @@ fun test1() {
} }
} }
--------------------- ---------------------
1 <v0> NEW() 1 <v1> NEW()
object { val x : Int { $x = 1 } } <v1> NEW() object { val x : Int { $x = 1 } } <v2> NEW()
===================== =====================
== O == == O ==
object O { object O {
@@ -44,7 +44,7 @@ object O {
} }
} }
--------------------- ---------------------
1 <v0> NEW() 1 <v1> NEW()
===================== =====================
== test2 == == test2 ==
fun test2() { fun test2() {
@@ -75,7 +75,7 @@ fun inner_bar() {
y = 10 y = 10
} }
--------------------- ---------------------
10 <v0> NEW() 10 <v1> NEW()
===================== =====================
== test4 == == test4 ==
fun test4() { fun test4() {
@@ -91,15 +91,15 @@ fun test4() {
} }
} }
--------------------- ---------------------
1 <v0> NEW() 1 <v1> NEW()
object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } } <v1> NEW() object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } } <v2> NEW()
===================== =====================
== ggg == == ggg ==
fun ggg() { fun ggg() {
y = 10 y = 10
} }
--------------------- ---------------------
10 <v0> NEW() 10 <v1> NEW()
===================== =====================
== test5 == == test5 ==
fun test5() { fun test5() {
@@ -118,20 +118,20 @@ fun test5() {
} }
--------------------- ---------------------
1 <v0> NEW() 1 <v0> NEW()
2 <v1> NEW() 2 <v2> NEW()
object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } } <v2> NEW() object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } } <v3> NEW()
===================== =====================
== foo == == foo ==
fun foo() { fun foo() {
x = 3 x = 3
} }
--------------------- ---------------------
3 <v0> NEW() 3 <v1> NEW()
===================== =====================
== bar == == bar ==
fun bar() { fun bar() {
x = 4 x = 4
} }
--------------------- ---------------------
4 <v0> NEW() 4 <v1> NEW()
===================== =====================
@@ -12,7 +12,8 @@ L0:
1 <START> 1 <START>
v(val a: Int get() = 1) v(val a: Int get() = 1)
2 mark({ $a }) 2 mark({ $a })
r($a) -> <v0> magic($a) -> <v0>
r($a|<v0>) -> <v1>
L1: L1:
1 <END> NEXT:[<SINK>] 1 <END> NEXT:[<SINK>]
error: error:
@@ -8,6 +8,6 @@ class C {
} }
} }
--------------------- ---------------------
$a <v0> NEW() $a <v1> NEW(<v0>)
{ $a } <v0> COPY { $a } <v1> COPY
===================== =====================
@@ -70,9 +70,9 @@ L5:
mark(Test()) mark(Test())
call(Test, <init>) -> <v15> call(Test, <init>) -> <v15>
w(t|<v15>) w(t|<v15>)
r(1) -> <v16> r(t) -> <v16>
r(t) -> <v17> r(1) -> <v17>
w(t.x|<v17>, <v16>) w(t.x|<v16>, <v17>)
mark(t.x += 1) mark(t.x += 1)
mark(t.x) mark(t.x)
r(t) -> <v18> r(t) -> <v18>
@@ -35,8 +35,8 @@ false <v12> NEW()
true <v13> NEW() true <v13> NEW()
false && true <v14> NEW(<v12>, <v13>) false && true <v14> NEW(<v12>, <v13>)
Test() <v15> NEW() Test() <v15> NEW()
t <v17> NEW() t <v16> NEW()
1 <v16> NEW() 1 <v17> NEW()
t <v22> NEW() t <v22> NEW()
x <v19> NEW(<v18>) x <v19> NEW(<v18>)
t.x <v19> COPY t.x <v19> COPY
@@ -111,112 +111,113 @@ L0:
mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel)) mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
mark(add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel)) mark(add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel))
mark(BunchKeywordRegister()) mark(BunchKeywordRegister())
call(BunchKeywordRegister, <init>) -> <v1> magic(BunchKeywordRegister()) -> <v1>
r(ABSTRACT_KEYWORD) -> <v2> call(BunchKeywordRegister, <init>|<v1>) -> <v2>
r(inTopLevel) -> <v3> r(ABSTRACT_KEYWORD) -> <v3>
r(inTopLevel) -> <v4> r(inTopLevel) -> <v4>
r(inTopLevel) -> <v5> r(inTopLevel) -> <v5>
call(add, add|<v1>, <v2>, <v3>, <v4>, <v5>) -> <v6> r(inTopLevel) -> <v6>
r(FINAL_KEYWORD) -> <v7> call(add, add|<v2>, <v3>, <v4>, <v5>, <v6>) -> <v7>
r(inTopLevel) -> <v8> r(FINAL_KEYWORD) -> <v8>
r(inTopLevel) -> <v9> r(inTopLevel) -> <v9>
r(inTopLevel) -> <v10> r(inTopLevel) -> <v10>
call(add, add|<v6>, <v7>, <v8>, <v9>, <v10>) -> <v11> r(inTopLevel) -> <v11>
r(OPEN_KEYWORD) -> <v12> call(add, add|<v7>, <v8>, <v9>, <v10>, <v11>) -> <v12>
r(inTopLevel) -> <v13> r(OPEN_KEYWORD) -> <v13>
r(inTopLevel) -> <v14> r(inTopLevel) -> <v14>
r(inTopLevel) -> <v15> r(inTopLevel) -> <v15>
call(add, add|<v11>, <v12>, <v13>, <v14>, <v15>) -> <v16> r(inTopLevel) -> <v16>
r(INTERNAL_KEYWORD) -> <v17> call(add, add|<v12>, <v13>, <v14>, <v15>, <v16>) -> <v17>
r(inTopLevel) -> <v18> r(INTERNAL_KEYWORD) -> <v18>
r(inTopLevel) -> <v19> r(inTopLevel) -> <v19>
r(inTopLevel) -> <v20> r(inTopLevel) -> <v20>
r(inTopLevel) -> <v21> r(inTopLevel) -> <v21>
call(add, add|<v16>, <v17>, <v18>, <v19>, <v20>, <v21>) -> <v22> r(inTopLevel) -> <v22>
r(PRIVATE_KEYWORD) -> <v23> call(add, add|<v17>, <v18>, <v19>, <v20>, <v21>, <v22>) -> <v23>
r(inTopLevel) -> <v24> r(PRIVATE_KEYWORD) -> <v24>
r(inTopLevel) -> <v25> r(inTopLevel) -> <v25>
r(inTopLevel) -> <v26> r(inTopLevel) -> <v26>
r(inTopLevel) -> <v27> r(inTopLevel) -> <v27>
call(add, add|<v22>, <v23>, <v24>, <v25>, <v26>, <v27>) -> <v28> r(inTopLevel) -> <v28>
r(PROTECTED_KEYWORD) -> <v29> call(add, add|<v23>, <v24>, <v25>, <v26>, <v27>, <v28>) -> <v29>
r(inTopLevel) -> <v30> r(PROTECTED_KEYWORD) -> <v30>
r(inTopLevel) -> <v31> r(inTopLevel) -> <v31>
r(inTopLevel) -> <v32> r(inTopLevel) -> <v32>
r(inTopLevel) -> <v33> r(inTopLevel) -> <v33>
call(add, add|<v28>, <v29>, <v30>, <v31>, <v32>, <v33>) -> <v34> r(inTopLevel) -> <v34>
r(PUBLIC_KEYWORD) -> <v35> call(add, add|<v29>, <v30>, <v31>, <v32>, <v33>, <v34>) -> <v35>
r(inTopLevel) -> <v36> r(PUBLIC_KEYWORD) -> <v36>
r(inTopLevel) -> <v37> r(inTopLevel) -> <v37>
r(inTopLevel) -> <v38> r(inTopLevel) -> <v38>
r(inTopLevel) -> <v39> r(inTopLevel) -> <v39>
call(add, add|<v34>, <v35>, <v36>, <v37>, <v38>, <v39>) -> <v40> r(inTopLevel) -> <v40>
r(CLASS_KEYWORD) -> <v41> call(add, add|<v35>, <v36>, <v37>, <v38>, <v39>, <v40>) -> <v41>
r(inTopLevel) -> <v42> r(CLASS_KEYWORD) -> <v42>
r(inTopLevel) -> <v43> r(inTopLevel) -> <v43>
r(inTopLevel) -> <v44> r(inTopLevel) -> <v44>
call(add, add|<v40>, <v41>, <v42>, <v43>, <v44>) -> <v45> r(inTopLevel) -> <v45>
r(ENUM_KEYWORD) -> <v46> call(add, add|<v41>, <v42>, <v43>, <v44>, <v45>) -> <v46>
r(inTopLevel) -> <v47> r(ENUM_KEYWORD) -> <v47>
r(inTopLevel) -> <v48> r(inTopLevel) -> <v48>
r(inTopLevel) -> <v49> r(inTopLevel) -> <v49>
call(add, add|<v45>, <v46>, <v47>, <v48>, <v49>) -> <v50> r(inTopLevel) -> <v50>
r(FUN_KEYWORD) -> <v51> call(add, add|<v46>, <v47>, <v48>, <v49>, <v50>) -> <v51>
r(inTopLevel) -> <v52> r(FUN_KEYWORD) -> <v52>
r(inTopLevel) -> <v53> r(inTopLevel) -> <v53>
r(inTopLevel) -> <v54> r(inTopLevel) -> <v54>
call(add, add|<v50>, <v51>, <v52>, <v53>, <v54>) -> <v55> r(inTopLevel) -> <v55>
r(GET_KEYWORD) -> <v56> call(add, add|<v51>, <v52>, <v53>, <v54>, <v55>) -> <v56>
r(inTopLevel) -> <v57> r(GET_KEYWORD) -> <v57>
r(inTopLevel) -> <v58> r(inTopLevel) -> <v58>
r(inTopLevel) -> <v59> r(inTopLevel) -> <v59>
call(add, add|<v55>, <v56>, <v57>, <v58>, <v59>) -> <v60> r(inTopLevel) -> <v60>
r(SET_KEYWORD) -> <v61> call(add, add|<v56>, <v57>, <v58>, <v59>, <v60>) -> <v61>
r(inTopLevel) -> <v62> r(SET_KEYWORD) -> <v62>
r(inTopLevel) -> <v63> r(inTopLevel) -> <v63>
r(inTopLevel) -> <v64> r(inTopLevel) -> <v64>
call(add, add|<v60>, <v61>, <v62>, <v63>, <v64>) -> <v65> r(inTopLevel) -> <v65>
r(TRAIT_KEYWORD) -> <v66> call(add, add|<v61>, <v62>, <v63>, <v64>, <v65>) -> <v66>
r(inTopLevel) -> <v67> r(TRAIT_KEYWORD) -> <v67>
r(inTopLevel) -> <v68> r(inTopLevel) -> <v68>
r(inTopLevel) -> <v69> r(inTopLevel) -> <v69>
call(add, add|<v65>, <v66>, <v67>, <v68>, <v69>) -> <v70> r(inTopLevel) -> <v70>
r(VAL_KEYWORD) -> <v71> call(add, add|<v66>, <v67>, <v68>, <v69>, <v70>) -> <v71>
r(inTopLevel) -> <v72> r(VAL_KEYWORD) -> <v72>
r(inTopLevel) -> <v73> r(inTopLevel) -> <v73>
r(inTopLevel) -> <v74> r(inTopLevel) -> <v74>
call(add, add|<v70>, <v71>, <v72>, <v73>, <v74>) -> <v75> r(inTopLevel) -> <v75>
r(VAR_KEYWORD) -> <v76> call(add, add|<v71>, <v72>, <v73>, <v74>, <v75>) -> <v76>
r(inTopLevel) -> <v77> r(VAR_KEYWORD) -> <v77>
r(inTopLevel) -> <v78> r(inTopLevel) -> <v78>
r(inTopLevel) -> <v79> r(inTopLevel) -> <v79>
call(add, add|<v75>, <v76>, <v77>, <v78>, <v79>) -> <v80> r(inTopLevel) -> <v80>
r(TYPE_KEYWORD) -> <v81> call(add, add|<v76>, <v77>, <v78>, <v79>, <v80>) -> <v81>
r(inTopLevel) -> <v82> r(TYPE_KEYWORD) -> <v82>
r(inTopLevel) -> <v83> r(inTopLevel) -> <v83>
r(inTopLevel) -> <v84> r(inTopLevel) -> <v84>
call(add, add|<v80>, <v81>, <v82>, <v83>, <v84>) -> <v85> r(inTopLevel) -> <v85>
r(IMPORT_KEYWORD) -> <v86> call(add, add|<v81>, <v82>, <v83>, <v84>, <v85>) -> <v86>
r(inTopLevel) -> <v87> r(IMPORT_KEYWORD) -> <v87>
call(add, add|<v85>, <v86>, <v87>) -> <v88> r(inTopLevel) -> <v88>
r(PACKAGE_KEYWORD) -> <v89> call(add, add|<v86>, <v87>, <v88>) -> <v89>
r(inTopLevel) -> <v90> r(PACKAGE_KEYWORD) -> <v90>
call(add, add|<v88>, <v89>, <v90>) -> <v91> r(inTopLevel) -> <v91>
r(OVERRIDE_KEYWORD) -> <v92> call(add, add|<v89>, <v90>, <v91>) -> <v92>
r(inTopLevel) -> <v93> r(OVERRIDE_KEYWORD) -> <v93>
call(add, add|<v91>, <v92>, <v93>) -> <v94> r(inTopLevel) -> <v94>
r(IN_KEYWORD) -> <v95> call(add, add|<v92>, <v93>, <v94>) -> <v95>
r(inTopLevel) -> <v96> r(IN_KEYWORD) -> <v96>
r(inTopLevel) -> <v97> r(inTopLevel) -> <v97>
call(add, add|<v94>, <v95>, <v96>, <v97>) -> <v98> r(inTopLevel) -> <v98>
r(OUT_KEYWORD) -> <v99> call(add, add|<v95>, <v96>, <v97>, <v98>) -> <v99>
r(inTopLevel) -> <v100> r(OUT_KEYWORD) -> <v100>
call(add, add|<v98>, <v99>, <v100>) -> <v101> r(inTopLevel) -> <v101>
r(OBJECT_KEYWORD) -> <v102> call(add, add|<v99>, <v100>, <v101>) -> <v102>
r(OBJECT_KEYWORD) -> <v103>
error(unresolvedCode, No resolved call) error(unresolvedCode, No resolved call)
magic(unresolvedCode) -> <v103> magic(unresolvedCode) -> <v104>
call(add, add|<v101>, <v102>, <v103>) -> <v104> call(add, add|<v102>, <v103>, <v104>) -> <v105>
call(registerAll, registerAll|<v104>) -> <v105> call(registerAll, registerAll|<v105>) -> <v106>
L1: L1:
1 <END> NEXT:[<SINK>] 1 <END> NEXT:[<SINK>]
error: error:
@@ -51,135 +51,135 @@ public open class JetKeywordCompletionContributor() {
} }
--------------------- ---------------------
1.0 <v0> NEW() 1.0 <v0> NEW()
BunchKeywordRegister() <v1> NEW() BunchKeywordRegister() <v2> NEW(<v1>)
ABSTRACT_KEYWORD <v2> NEW() ABSTRACT_KEYWORD <v3> NEW()
inTopLevel <v3> NEW()
inTopLevel <v4> NEW() inTopLevel <v4> NEW()
inTopLevel <v5> NEW() inTopLevel <v5> NEW()
add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v6> NEW(<v1>, <v2>, <v3>, <v4>, <v5>) inTopLevel <v6> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v6> COPY add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v7> NEW(<v2>, <v3>, <v4>, <v5>, <v6>)
FINAL_KEYWORD <v7> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v7> COPY
inTopLevel <v8> NEW() FINAL_KEYWORD <v8> NEW()
inTopLevel <v9> NEW() inTopLevel <v9> NEW()
inTopLevel <v10> NEW() inTopLevel <v10> NEW()
add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v11> NEW(<v6>, <v7>, <v8>, <v9>, <v10>) inTopLevel <v11> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v11> COPY add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v12> NEW(<v7>, <v8>, <v9>, <v10>, <v11>)
OPEN_KEYWORD <v12> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v12> COPY
inTopLevel <v13> NEW() OPEN_KEYWORD <v13> NEW()
inTopLevel <v14> NEW() inTopLevel <v14> NEW()
inTopLevel <v15> NEW() inTopLevel <v15> NEW()
add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v16> NEW(<v11>, <v12>, <v13>, <v14>, <v15>) inTopLevel <v16> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v16> COPY add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v17> NEW(<v12>, <v13>, <v14>, <v15>, <v16>)
INTERNAL_KEYWORD <v17> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v17> COPY
inTopLevel <v18> NEW() INTERNAL_KEYWORD <v18> NEW()
inTopLevel <v19> NEW() inTopLevel <v19> NEW()
inTopLevel <v20> NEW() inTopLevel <v20> NEW()
inTopLevel <v21> NEW() inTopLevel <v21> NEW()
add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v22> NEW(<v16>, <v17>, <v18>, <v19>, <v20>, <v21>) inTopLevel <v22> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v22> COPY add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v23> NEW(<v17>, <v18>, <v19>, <v20>, <v21>, <v22>)
PRIVATE_KEYWORD <v23> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v23> COPY
inTopLevel <v24> NEW() PRIVATE_KEYWORD <v24> NEW()
inTopLevel <v25> NEW() inTopLevel <v25> NEW()
inTopLevel <v26> NEW() inTopLevel <v26> NEW()
inTopLevel <v27> NEW() inTopLevel <v27> NEW()
add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v28> NEW(<v22>, <v23>, <v24>, <v25>, <v26>, <v27>) inTopLevel <v28> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v28> COPY add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v29> NEW(<v23>, <v24>, <v25>, <v26>, <v27>, <v28>)
PROTECTED_KEYWORD <v29> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v29> COPY
inTopLevel <v30> NEW() PROTECTED_KEYWORD <v30> NEW()
inTopLevel <v31> NEW() inTopLevel <v31> NEW()
inTopLevel <v32> NEW() inTopLevel <v32> NEW()
inTopLevel <v33> NEW() inTopLevel <v33> NEW()
add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v34> NEW(<v28>, <v29>, <v30>, <v31>, <v32>, <v33>) inTopLevel <v34> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v34> COPY add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v35> NEW(<v29>, <v30>, <v31>, <v32>, <v33>, <v34>)
PUBLIC_KEYWORD <v35> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v35> COPY
inTopLevel <v36> NEW() PUBLIC_KEYWORD <v36> NEW()
inTopLevel <v37> NEW() inTopLevel <v37> NEW()
inTopLevel <v38> NEW() inTopLevel <v38> NEW()
inTopLevel <v39> NEW() inTopLevel <v39> NEW()
add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v40> NEW(<v34>, <v35>, <v36>, <v37>, <v38>, <v39>) inTopLevel <v40> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v40> COPY add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v41> NEW(<v35>, <v36>, <v37>, <v38>, <v39>, <v40>)
CLASS_KEYWORD <v41> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) <v41> COPY
inTopLevel <v42> NEW() CLASS_KEYWORD <v42> NEW()
inTopLevel <v43> NEW() inTopLevel <v43> NEW()
inTopLevel <v44> NEW() inTopLevel <v44> NEW()
add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v45> NEW(<v40>, <v41>, <v42>, <v43>, <v44>) inTopLevel <v45> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v45> COPY add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v46> NEW(<v41>, <v42>, <v43>, <v44>, <v45>)
ENUM_KEYWORD <v46> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v46> COPY
inTopLevel <v47> NEW() ENUM_KEYWORD <v47> NEW()
inTopLevel <v48> NEW() inTopLevel <v48> NEW()
inTopLevel <v49> NEW() inTopLevel <v49> NEW()
add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v50> NEW(<v45>, <v46>, <v47>, <v48>, <v49>) inTopLevel <v50> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v50> COPY add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v51> NEW(<v46>, <v47>, <v48>, <v49>, <v50>)
FUN_KEYWORD <v51> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v51> COPY
inTopLevel <v52> NEW() FUN_KEYWORD <v52> NEW()
inTopLevel <v53> NEW() inTopLevel <v53> NEW()
inTopLevel <v54> NEW() inTopLevel <v54> NEW()
add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v55> NEW(<v50>, <v51>, <v52>, <v53>, <v54>) inTopLevel <v55> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v55> COPY add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v56> NEW(<v51>, <v52>, <v53>, <v54>, <v55>)
GET_KEYWORD <v56> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v56> COPY
inTopLevel <v57> NEW() GET_KEYWORD <v57> NEW()
inTopLevel <v58> NEW() inTopLevel <v58> NEW()
inTopLevel <v59> NEW() inTopLevel <v59> NEW()
add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v60> NEW(<v55>, <v56>, <v57>, <v58>, <v59>) inTopLevel <v60> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v60> COPY add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v61> NEW(<v56>, <v57>, <v58>, <v59>, <v60>)
SET_KEYWORD <v61> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v61> COPY
inTopLevel <v62> NEW() SET_KEYWORD <v62> NEW()
inTopLevel <v63> NEW() inTopLevel <v63> NEW()
inTopLevel <v64> NEW() inTopLevel <v64> NEW()
add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v65> NEW(<v60>, <v61>, <v62>, <v63>, <v64>) inTopLevel <v65> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v65> COPY add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v66> NEW(<v61>, <v62>, <v63>, <v64>, <v65>)
TRAIT_KEYWORD <v66> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v66> COPY
inTopLevel <v67> NEW() TRAIT_KEYWORD <v67> NEW()
inTopLevel <v68> NEW() inTopLevel <v68> NEW()
inTopLevel <v69> NEW() inTopLevel <v69> NEW()
add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v70> NEW(<v65>, <v66>, <v67>, <v68>, <v69>) inTopLevel <v70> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v70> COPY add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v71> NEW(<v66>, <v67>, <v68>, <v69>, <v70>)
VAL_KEYWORD <v71> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v71> COPY
inTopLevel <v72> NEW() VAL_KEYWORD <v72> NEW()
inTopLevel <v73> NEW() inTopLevel <v73> NEW()
inTopLevel <v74> NEW() inTopLevel <v74> NEW()
add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v75> NEW(<v70>, <v71>, <v72>, <v73>, <v74>) inTopLevel <v75> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v75> COPY add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v76> NEW(<v71>, <v72>, <v73>, <v74>, <v75>)
VAR_KEYWORD <v76> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v76> COPY
inTopLevel <v77> NEW() VAR_KEYWORD <v77> NEW()
inTopLevel <v78> NEW() inTopLevel <v78> NEW()
inTopLevel <v79> NEW() inTopLevel <v79> NEW()
add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v80> NEW(<v75>, <v76>, <v77>, <v78>, <v79>) inTopLevel <v80> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v80> COPY add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v81> NEW(<v76>, <v77>, <v78>, <v79>, <v80>)
TYPE_KEYWORD <v81> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v81> COPY
inTopLevel <v82> NEW() TYPE_KEYWORD <v82> NEW()
inTopLevel <v83> NEW() inTopLevel <v83> NEW()
inTopLevel <v84> NEW() inTopLevel <v84> NEW()
add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v85> NEW(<v80>, <v81>, <v82>, <v83>, <v84>) inTopLevel <v85> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v85> COPY add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v86> NEW(<v81>, <v82>, <v83>, <v84>, <v85>)
IMPORT_KEYWORD <v86> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) <v86> COPY
inTopLevel <v87> NEW() IMPORT_KEYWORD <v87> NEW()
add(IMPORT_KEYWORD, inTopLevel) <v88> NEW(<v85>, <v86>, <v87>) inTopLevel <v88> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) <v88> COPY add(IMPORT_KEYWORD, inTopLevel) <v89> NEW(<v86>, <v87>, <v88>)
PACKAGE_KEYWORD <v89> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) <v89> COPY
inTopLevel <v90> NEW() PACKAGE_KEYWORD <v90> NEW()
add(PACKAGE_KEYWORD, inTopLevel) <v91> NEW(<v88>, <v89>, <v90>) inTopLevel <v91> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) <v91> COPY add(PACKAGE_KEYWORD, inTopLevel) <v92> NEW(<v89>, <v90>, <v91>)
OVERRIDE_KEYWORD <v92> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) <v92> COPY
inTopLevel <v93> NEW() OVERRIDE_KEYWORD <v93> NEW()
add(OVERRIDE_KEYWORD, inTopLevel) <v94> NEW(<v91>, <v92>, <v93>) inTopLevel <v94> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) <v94> COPY add(OVERRIDE_KEYWORD, inTopLevel) <v95> NEW(<v92>, <v93>, <v94>)
IN_KEYWORD <v95> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) <v95> COPY
inTopLevel <v96> NEW() IN_KEYWORD <v96> NEW()
inTopLevel <v97> NEW() inTopLevel <v97> NEW()
add(IN_KEYWORD, inTopLevel, inTopLevel) <v98> NEW(<v94>, <v95>, <v96>, <v97>) inTopLevel <v98> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) <v98> COPY add(IN_KEYWORD, inTopLevel, inTopLevel) <v99> NEW(<v95>, <v96>, <v97>, <v98>)
OUT_KEYWORD <v99> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) <v99> COPY
inTopLevel <v100> NEW() OUT_KEYWORD <v100> NEW()
add(OUT_KEYWORD, inTopLevel) <v101> NEW(<v98>, <v99>, <v100>) inTopLevel <v101> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) .add(OUT_KEYWORD, inTopLevel) <v101> COPY add(OUT_KEYWORD, inTopLevel) <v102> NEW(<v99>, <v100>, <v101>)
OBJECT_KEYWORD <v102> NEW() BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) .add(OUT_KEYWORD, inTopLevel) <v102> COPY
unresolvedCode <v103> NEW() OBJECT_KEYWORD <v103> NEW()
add(OBJECT_KEYWORD, unresolvedCode) <v104> NEW(<v101>, <v102>, <v103>) unresolvedCode <v104> NEW()
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) .add(OUT_KEYWORD, inTopLevel) .add(OBJECT_KEYWORD, unresolvedCode) <v104> COPY add(OBJECT_KEYWORD, unresolvedCode) <v105> NEW(<v102>, <v103>, <v104>)
registerAll() <v105> NEW(<v104>) BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) .add(OUT_KEYWORD, inTopLevel) .add(OBJECT_KEYWORD, unresolvedCode) <v105> COPY
BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) .add(OUT_KEYWORD, inTopLevel) .add(OBJECT_KEYWORD, unresolvedCode) .registerAll() <v105> COPY registerAll() <v106> NEW(<v105>)
{ val inTopLevel = 1.0 BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) .add(OUT_KEYWORD, inTopLevel) .add(OBJECT_KEYWORD, unresolvedCode) .registerAll() } <v105> COPY BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) .add(OUT_KEYWORD, inTopLevel) .add(OBJECT_KEYWORD, unresolvedCode) .registerAll() <v106> COPY
{ val inTopLevel = 1.0 BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) .add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(IMPORT_KEYWORD, inTopLevel) .add(PACKAGE_KEYWORD, inTopLevel) .add(OVERRIDE_KEYWORD, inTopLevel) .add(IN_KEYWORD, inTopLevel, inTopLevel) .add(OUT_KEYWORD, inTopLevel) .add(OBJECT_KEYWORD, unresolvedCode) .registerAll() } <v106> COPY
===================== =====================
== ABSTRACT_KEYWORD == == ABSTRACT_KEYWORD ==
val ABSTRACT_KEYWORD = JetToken() val ABSTRACT_KEYWORD = JetToken()