From 45bd3a520efb8254b42cd48625df3b59ff80c5ad Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Tue, 10 Jun 2014 13:49:56 +0400 Subject: [PATCH] Pseudocode: Generate pseudo-values for implicit receivers --- .../jet/lang/cfg/JetControlFlowProcessor.java | 34 ++-- .../basic/InitializedNotDeclared.instructions | 15 +- .../basic/InitializedNotDeclared.values | 2 +- .../VariablesInitialization.instructions | 6 +- .../basic/VariablesInitialization.values | 4 +- ...eferenceToPropertyInitializer.instructions | 47 +++-- .../referenceToPropertyInitializer.values | 30 +-- .../lexicalScopes/localClass.instructions | 14 +- .../lexicalScopes/localClass.values | 8 +- .../propertyAccessorScope.instructions | 14 +- .../propertyAccessorScope.values | 4 +- .../AnonymousInitializers.instructions | 10 +- .../AnonymousInitializers.values | 4 +- .../local/LocalDeclarations.instructions | 74 +++---- .../local/LocalDeclarations.values | 22 +-- .../backingFieldAccess.instructions | 3 +- .../properties/backingFieldAccess.values | 4 +- .../cfg/expressions/Assignments.instructions | 6 +- .../cfg/expressions/Assignments.values | 4 +- .../chainedQualifiedExpression.instructions | 137 ++++++------- .../chainedQualifiedExpression.values | 184 +++++++++--------- 21 files changed, 330 insertions(+), 296 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowProcessor.java b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowProcessor.java index 8572f0419dc..e3022b6de9b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowProcessor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowProcessor.java @@ -453,23 +453,29 @@ public class JetControlFlowProcessor { return; } - PseudoValue rhsValue = rhsDeferredValue.invoke(); Map receiverValues = SmartFMap.emptyMap(); AccessTarget accessTarget = AccessTarget.BlackBox.instance$; + boolean unsupported = false; if (left instanceof JetSimpleNameExpression || left instanceof JetQualifiedExpression) { accessTarget = getResolvedCallAccessTarget(PsiUtilPackage.getQualifiedElementSelector(left)); 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) { accessTarget = getDeclarationAccessTarget(left); } 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( @@ -491,7 +497,7 @@ public class JetControlFlowProcessor { generateInstructions(lhs.getArrayExpression(), NOT_IN_CONDITION); - Map receiverValues = getReceiverValues(setResolvedCall, false); + Map receiverValues = getReceiverValues(lhs, setResolvedCall, false); SmartFMap argumentValues = getArraySetterArguments(rhsDeferredValue, setResolvedCall); @@ -1139,7 +1145,7 @@ public class JetControlFlowProcessor { entry, entry, resolvedCall, - getReceiverValues(resolvedCall, false), + getReceiverValues(initializer, resolvedCall, false), Collections.emptyMap() ).getOutputValue() : createSyntheticValue(entry, initializer); @@ -1392,7 +1398,7 @@ public class JetControlFlowProcessor { } CallableDescriptor resultingDescriptor = resolvedCall.getResultingDescriptor(); - Map receivers = getReceiverValues(resolvedCall, true); + Map receivers = getReceiverValues(callExpression, resolvedCall, true); SmartFMap parameterValues = SmartFMap.emptyMap(); for (ValueParameterDescriptor parameterDescriptor : resultingDescriptor.getValueParameters()) { ResolvedValueArgument argument = resolvedCall.getValueArguments().get(parameterDescriptor); @@ -1410,15 +1416,19 @@ public class JetControlFlowProcessor { } @NotNull - private Map getReceiverValues(ResolvedCall resolvedCall, boolean generateInstructions) { + private Map getReceiverValues( + JetExpression callExpression, + ResolvedCall resolvedCall, + boolean generateInstructions) { SmartFMap receiverValues = SmartFMap.emptyMap(); - receiverValues = getReceiverValues(resolvedCall.getThisObject(), generateInstructions, receiverValues); - receiverValues = getReceiverValues(resolvedCall.getReceiverArgument(), generateInstructions, receiverValues); + receiverValues = getReceiverValues(callExpression, resolvedCall.getThisObject(), generateInstructions, receiverValues); + receiverValues = getReceiverValues(callExpression, resolvedCall.getReceiverArgument(), generateInstructions, receiverValues); return receiverValues; } @NotNull private SmartFMap getReceiverValues( + JetExpression callExpression, ReceiverValue receiver, boolean generateInstructions, SmartFMap receiverValues @@ -1426,7 +1436,9 @@ public class JetControlFlowProcessor { if (!receiver.exists()) return receiverValues; 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) { JetExpression expression = ((ExpressionReceiver) receiver).getExpression(); diff --git a/compiler/testData/cfg-variables/basic/InitializedNotDeclared.instructions b/compiler/testData/cfg-variables/basic/InitializedNotDeclared.instructions index 98840979d89..ca968fe8fd0 100644 --- a/compiler/testData/cfg-variables/basic/InitializedNotDeclared.instructions +++ b/compiler/testData/cfg-variables/basic/InitializedNotDeclared.instructions @@ -7,15 +7,16 @@ class A { } --------------------- L0: - 1 INIT: in: {} out: {} + 1 INIT: in: {} out: {} 2 mark({ x = 1 }) - r(1) -> USE: in: {x=ONLY_WRITTEN_NEVER_READ} out: {x=ONLY_WRITTEN_NEVER_READ} - w(x|) 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} + magic(x) -> + r(1) -> USE: in: {x=ONLY_WRITTEN_NEVER_READ} out: {x=ONLY_WRITTEN_NEVER_READ} + w(x|, ) 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: - INIT: in: {x=ID} out: {x=ID} + INIT: in: {x=ID} out: {x=ID} error: - INIT: in: {} out: {} + INIT: in: {} out: {} sink: - INIT: in: {x=ID} out: {x=ID} USE: in: {} out: {} + INIT: in: {x=ID} out: {x=ID} USE: in: {} out: {} ===================== diff --git a/compiler/testData/cfg-variables/basic/InitializedNotDeclared.values b/compiler/testData/cfg-variables/basic/InitializedNotDeclared.values index bf873438e03..13de2c9986d 100644 --- a/compiler/testData/cfg-variables/basic/InitializedNotDeclared.values +++ b/compiler/testData/cfg-variables/basic/InitializedNotDeclared.values @@ -6,5 +6,5 @@ class A { val x: Int } --------------------- -1 NEW() +1 NEW() ===================== diff --git a/compiler/testData/cfg-variables/basic/VariablesInitialization.instructions b/compiler/testData/cfg-variables/basic/VariablesInitialization.instructions index 31fe76739d1..fea98b67f7a 100644 --- a/compiler/testData/cfg-variables/basic/VariablesInitialization.instructions +++ b/compiler/testData/cfg-variables/basic/VariablesInitialization.instructions @@ -39,9 +39,9 @@ L0: mark(foo.c) r(foo) -> USE: in: {c=READ, foo=READ} out: {c=READ, foo=READ} r(c|) -> USE: in: {c=ONLY_WRITTEN_NEVER_READ, foo=READ} out: {c=READ, foo=READ} - r(2) -> USE: in: {c=ONLY_WRITTEN_NEVER_READ, foo=READ} out: {c=ONLY_WRITTEN_NEVER_READ, foo=READ} - r(foo) -> USE: in: {c=ONLY_WRITTEN_NEVER_READ} out: {c=ONLY_WRITTEN_NEVER_READ, foo=READ} - w(foo.c|, ) INIT: in: {foo=ID} out: {c=I, foo=ID} USE: in: {} out: {c=ONLY_WRITTEN_NEVER_READ} + r(foo) -> USE: in: {c=ONLY_WRITTEN_NEVER_READ} out: {c=ONLY_WRITTEN_NEVER_READ, foo=READ} + r(2) -> USE: in: {c=ONLY_WRITTEN_NEVER_READ} out: {c=ONLY_WRITTEN_NEVER_READ} + w(foo.c|, ) INIT: in: {foo=ID} out: {c=I, foo=ID} USE: in: {} out: {c=ONLY_WRITTEN_NEVER_READ} r(42) -> INIT: in: {c=I, foo=ID} out: {c=I, foo=ID} L1: 1 diff --git a/compiler/testData/cfg-variables/basic/VariablesInitialization.values b/compiler/testData/cfg-variables/basic/VariablesInitialization.values index 8a7d7b27c17..4288c843063 100644 --- a/compiler/testData/cfg-variables/basic/VariablesInitialization.values +++ b/compiler/testData/cfg-variables/basic/VariablesInitialization.values @@ -21,8 +21,8 @@ fun bar(foo: Foo) { foo NEW() c NEW() foo.c COPY -foo NEW() -2 NEW() +foo NEW() +2 NEW() 42 NEW() { foo.c foo.c = 2 42 } COPY ===================== diff --git a/compiler/testData/cfg-variables/bugs/referenceToPropertyInitializer.instructions b/compiler/testData/cfg-variables/bugs/referenceToPropertyInitializer.instructions index 91cd786b5d9..fe4512be268 100644 --- a/compiler/testData/cfg-variables/bugs/referenceToPropertyInitializer.instructions +++ b/compiler/testData/cfg-variables/bugs/referenceToPropertyInitializer.instructions @@ -33,15 +33,16 @@ L3: w(x|) INIT: in: {x=D} 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)) USE: in: {sum=READ, x=READ} out: {sum=READ, x=READ} - r(sum) -> USE: in: {x=READ} out: {sum=READ, x=READ} + mark(sum(x - 1)) + magic(sum) -> USE: in: {sum=READ, x=READ} out: {sum=READ, x=READ} + r(sum|) -> USE: in: {x=READ} out: {sum=READ, x=READ} mark(x - 1) - r(x) -> - r(1) -> - call(-, minus|, ) -> - call(sum, invoke|, ) -> USE: in: {x=READ} out: {x=READ} - r(x) -> USE: in: {} out: {x=READ} - call(+, plus|, ) -> + r(x) -> + r(1) -> + call(-, minus|, ) -> + call(sum, invoke|, ) -> USE: in: {x=READ} out: {x=READ} + r(x) -> USE: in: {} out: {x=READ} + call(+, plus|, ) -> L4: 2 error: @@ -80,16 +81,18 @@ L0: 1 INIT: in: {} out: {} 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} - r(obj) -> + magic(obj) -> + r(obj|) -> 2 mark({ val x = obj }) v(val x = obj) INIT: in: {obj=D} out: {obj=D, x=D} - r(obj) -> INIT: in: {obj=D, x=D} out: {obj=D, x=D} - w(x|) INIT: in: {obj=D, x=D} out: {obj=D, x=ID} + magic(obj) -> INIT: in: {obj=D, x=D} out: {obj=D, x=D} + r(obj|) -> + w(x|) INIT: in: {obj=D, x=D} out: {obj=D, x=ID} 1 jmp?(L2) INIT: in: {obj=D} out: {obj=D} d(fun foo() { val y = obj }) USE: in: {obj=READ} out: {obj=READ} L2: - r(object: A(obj) { { val x = obj } fun foo() { val y = obj } }) -> - w(obj|) INIT: in: {obj=D} out: {obj=ID} + r(object: A(obj) { { val x = obj } fun foo() { val y = obj } }) -> + w(obj|) INIT: in: {obj=D} out: {obj=ID} L1: INIT: in: {obj=ID} out: {obj=ID} error: @@ -105,9 +108,10 @@ fun foo() { L3: 2 INIT: in: {} out: {} 3 mark({ val y = obj }) - v(val y = obj) INIT: in: {} out: {y=D} USE: in: {obj=READ} out: {obj=READ} - r(obj) -> INIT: in: {y=D} out: {y=D} USE: in: {} out: {obj=READ} - w(y|) INIT: in: {y=D} out: {y=ID} + v(val y = obj) INIT: in: {} out: {y=D} + magic(obj) -> INIT: in: {y=D} out: {y=D} USE: in: {obj=READ} out: {obj=READ} + r(obj|) -> USE: in: {} out: {obj=READ} + w(y|) INIT: in: {y=D} out: {y=ID} L4: 2 INIT: in: {} out: {} error: @@ -123,11 +127,12 @@ class TestOther { L0: 1 INIT: in: {} out: {} 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} - r(x) -> USE: in: {} out: {x=READ} - r(1) -> - call(+, plus|, ) -> - w(x|) INIT: in: {x=D} out: {x=ID} + mark(x + 1) INIT: in: {x=D} out: {x=D} + magic(x) -> USE: in: {x=READ} out: {x=READ} + r(x|) -> USE: in: {} out: {x=READ} + r(1) -> + call(+, plus|, ) -> + w(x|) INIT: in: {x=D} out: {x=ID} L1: INIT: in: {x=ID} out: {x=ID} error: diff --git a/compiler/testData/cfg-variables/bugs/referenceToPropertyInitializer.values b/compiler/testData/cfg-variables/bugs/referenceToPropertyInitializer.values index 45d05ab3d65..0dfc529f7e4 100644 --- a/compiler/testData/cfg-variables/bugs/referenceToPropertyInitializer.values +++ b/compiler/testData/cfg-variables/bugs/referenceToPropertyInitializer.values @@ -12,14 +12,14 @@ class TestFunctionLiteral { sum(x - 1) + x } --------------------- -sum NEW() -x NEW() -1 NEW() -x - 1 NEW(, ) -sum(x - 1) NEW(, ) -x NEW() -sum(x - 1) + x NEW(, ) -sum(x - 1) + x COPY +sum NEW() +x NEW() +1 NEW() +x - 1 NEW(, ) +sum(x - 1) NEW(, ) +x NEW() +sum(x - 1) + x NEW(, ) +sum(x - 1) + x COPY ===================== == A == open class A(val a: A) @@ -37,23 +37,23 @@ class TestObjectLiteral { } } --------------------- -obj NEW() -obj NEW() -object: A(obj) { { val x = obj } fun foo() { val y = obj } } NEW() +obj NEW() +obj NEW() +object: A(obj) { { val x = obj } fun foo() { val y = obj } } NEW() ===================== == foo == fun foo() { val y = obj } --------------------- -obj NEW() +obj NEW() ===================== == TestOther == class TestOther { val x: Int = x + 1 } --------------------- -x NEW() -1 NEW() -x + 1 NEW(, ) +x NEW() +1 NEW() +x + 1 NEW(, ) ===================== diff --git a/compiler/testData/cfg-variables/lexicalScopes/localClass.instructions b/compiler/testData/cfg-variables/lexicalScopes/localClass.instructions index e66d65e606c..d21e37a02e5 100644 --- a/compiler/testData/cfg-variables/lexicalScopes/localClass.instructions +++ b/compiler/testData/cfg-variables/lexicalScopes/localClass.instructions @@ -22,13 +22,14 @@ L0: w(x|) INIT: in: {x=D} 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} - r(x) -> INIT: in: {a=D, x=ID} out: {a=D, x=ID} - w(a|) INIT: in: {a=D, x=ID} out: {a=ID, x=ID} + magic(x) -> INIT: in: {a=D, x=ID} out: {a=D, x=ID} + r(x|) -> + w(a|) INIT: in: {a=D, x=ID} out: {a=ID, 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} L2: mark("after") - r("after") -> + r("after") -> L1: 1 INIT: in: {} out: {} error: @@ -44,9 +45,10 @@ fun foo() { L3: 3 INIT: in: {} out: {} 4 mark({ val b = x }) - v(val b = x) INIT: in: {} out: {b=D} USE: in: {x=READ} out: {x=READ} - r(x) -> INIT: in: {b=D} out: {b=D} USE: in: {} out: {x=READ} - w(b|) INIT: in: {b=D} out: {b=ID} + v(val b = x) INIT: in: {} out: {b=D} + magic(x) -> INIT: in: {b=D} out: {b=D} USE: in: {x=READ} out: {x=READ} + r(x|) -> USE: in: {} out: {x=READ} + w(b|) INIT: in: {b=D} out: {b=ID} L4: 3 INIT: in: {} out: {} error: diff --git a/compiler/testData/cfg-variables/lexicalScopes/localClass.values b/compiler/testData/cfg-variables/lexicalScopes/localClass.values index 90604b386e7..c9e1ecde4a3 100644 --- a/compiler/testData/cfg-variables/lexicalScopes/localClass.values +++ b/compiler/testData/cfg-variables/lexicalScopes/localClass.values @@ -13,14 +13,14 @@ fun foo() { } --------------------- "before" NEW() -x NEW() -"after" NEW() -{ "before" class A(val x: Int) { { val a = x } fun foo() { val b = x } } "after" } COPY +x NEW() +"after" NEW() +{ "before" class A(val x: Int) { { val a = x } fun foo() { val b = x } } "after" } COPY ===================== == foo == fun foo() { val b = x } --------------------- -x NEW() +x NEW() ===================== diff --git a/compiler/testData/cfg-variables/lexicalScopes/propertyAccessorScope.instructions b/compiler/testData/cfg-variables/lexicalScopes/propertyAccessorScope.instructions index 828a5409d59..ee2affb4dde 100644 --- a/compiler/testData/cfg-variables/lexicalScopes/propertyAccessorScope.instructions +++ b/compiler/testData/cfg-variables/lexicalScopes/propertyAccessorScope.instructions @@ -35,9 +35,10 @@ get() { --------------------- L3: 3 INIT: in: {} out: {} - 4 mark({ return $a }) USE: in: {a=READ} out: {a=READ} - r($a) -> USE: in: {} out: {a=READ} - ret(*|) L4 + 4 mark({ return $a }) + magic($a) -> USE: in: {a=READ} out: {a=READ} + r($a|) -> USE: in: {} out: {a=READ} + ret(*|) L4 L4: 3 error: @@ -55,9 +56,10 @@ L6: v(v: Int) INIT: in: {} out: {v=D} magic(v: Int) -> INIT: in: {v=D} out: {v=D} w(v|) 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} - r(v) -> USE: in: {a=ONLY_WRITTEN_NEVER_READ} out: {a=ONLY_WRITTEN_NEVER_READ, v=READ} - w($a|) INIT: in: {v=ID} out: {a=I, v=ID} USE: in: {} out: {a=ONLY_WRITTEN_NEVER_READ} + 4 mark({ $a = v }) INIT: in: {v=ID} out: {v=ID} + magic($a) -> USE: in: {a=ONLY_WRITTEN_NEVER_READ, v=READ} out: {a=ONLY_WRITTEN_NEVER_READ, v=READ} + r(v) -> USE: in: {a=ONLY_WRITTEN_NEVER_READ} out: {a=ONLY_WRITTEN_NEVER_READ, v=READ} + w($a|, ) INIT: in: {v=ID} out: {a=I, v=ID} USE: in: {} out: {a=ONLY_WRITTEN_NEVER_READ} L7: 3 INIT: in: {a=I, v=ID} out: {a=I, v=ID} error: diff --git a/compiler/testData/cfg-variables/lexicalScopes/propertyAccessorScope.values b/compiler/testData/cfg-variables/lexicalScopes/propertyAccessorScope.values index aff6f416c7b..ba1ceaa3737 100644 --- a/compiler/testData/cfg-variables/lexicalScopes/propertyAccessorScope.values +++ b/compiler/testData/cfg-variables/lexicalScopes/propertyAccessorScope.values @@ -17,12 +17,12 @@ get() { return $a } --------------------- -$a NEW() +$a NEW() ===================== == set_a == set(v: Int) { $a = v } --------------------- -v NEW() +v NEW() ===================== diff --git a/compiler/testData/cfg/declarations/classesAndObjects/AnonymousInitializers.instructions b/compiler/testData/cfg/declarations/classesAndObjects/AnonymousInitializers.instructions index 230c31eb3a7..828260d6ffa 100644 --- a/compiler/testData/cfg/declarations/classesAndObjects/AnonymousInitializers.instructions +++ b/compiler/testData/cfg/declarations/classesAndObjects/AnonymousInitializers.instructions @@ -22,12 +22,14 @@ L0: w(k|) v(val i: Int) 2 mark({ $i = 12 }) - r(12) -> - w($i|) + magic($i) -> + r(12) -> + w($i|, ) 1 v(val j: Int get() = 20) 2 mark({ $i = 13 }) - r(13) -> - w($i|) + magic($i) -> + r(13) -> + w($i|, ) L1: 1 NEXT:[] error: diff --git a/compiler/testData/cfg/declarations/classesAndObjects/AnonymousInitializers.values b/compiler/testData/cfg/declarations/classesAndObjects/AnonymousInitializers.values index 6249bfd5c22..1f09331a566 100644 --- a/compiler/testData/cfg/declarations/classesAndObjects/AnonymousInitializers.values +++ b/compiler/testData/cfg/declarations/classesAndObjects/AnonymousInitializers.values @@ -16,6 +16,6 @@ class AnonymousInitializers() { } --------------------- 34 NEW() -12 NEW() -13 NEW() +12 NEW() +13 NEW() ===================== diff --git a/compiler/testData/cfg/declarations/local/LocalDeclarations.instructions b/compiler/testData/cfg/declarations/local/LocalDeclarations.instructions index a5b233df618..d5de9559dd4 100644 --- a/compiler/testData/cfg/declarations/local/LocalDeclarations.instructions +++ b/compiler/testData/cfg/declarations/local/LocalDeclarations.instructions @@ -63,10 +63,11 @@ L0: mark(object { val x : Int { $x = 1 } }) v(val x : Int) 3 mark({ $x = 1 }) - r(1) -> - w($x|) - 2 r(object { val x : Int { $x = 1 } }) -> - w(a|) + magic($x) -> + r(1) -> + w($x|, ) + 2 r(object { val x : Int { $x = 1 } }) -> + w(a|) L1: 1 NEXT:[] error: @@ -86,14 +87,15 @@ L0: 1 v(val x : Int) 2 mark({ $x = 1 }) - r(1) -> - w($x|) + magic($x) -> + r(1) -> + w($x|, ) L1: - 1 NEXT:[] + 1 NEXT:[] error: - PREV:[] + PREV:[] sink: - PREV:[, ] + PREV:[, ] ===================== == test2 == fun test2() { @@ -159,8 +161,9 @@ fun inner_bar() { L3: 3 4 mark({ y = 10 }) - r(10) -> - w(y|) + magic(y) -> + r(10) -> + w(y|, ) L4: 3 NEXT:[] error: @@ -190,13 +193,14 @@ L0: v(val x : Int) v(val y : Int) 3 mark({ $x = 1 }) - r(1) -> - w($x|) - 2 jmp?(L2) NEXT:[r(object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } }) -> , d(fun ggg() { y = 10 })] + magic($x) -> + r(1) -> + w($x|, ) + 2 jmp?(L2) NEXT:[r(object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } }) -> , d(fun ggg() { y = 10 })] d(fun ggg() { y = 10 }) NEXT:[] L2: - r(object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } }) -> PREV:[jmp?(L2)] - w(a|) + r(object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } }) -> PREV:[jmp?(L2)] + w(a|) L1: 1 NEXT:[] error: @@ -212,8 +216,9 @@ fun ggg() { L3: 3 4 mark({ y = 10 }) - r(10) -> - w(y|) + magic(y) -> + r(10) -> + w(y|, ) L4: 3 NEXT:[] error: @@ -246,16 +251,17 @@ L0: r(1) -> w(x|) 3 mark({ $x = 2 }) - r(2) -> - w($x|) + magic($x) -> + r(2) -> + w($x|, ) 2 jmp?(L2) NEXT:[jmp?(L5), d(fun foo() { x = 3 })] d(fun foo() { x = 3 }) NEXT:[] L2: - jmp?(L5) NEXT:[r(object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } }) -> , 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 } }) -> , d(fun bar() { x = 4 })] PREV:[jmp?(L2)] d(fun bar() { x = 4 }) NEXT:[] L5: - r(object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } }) -> PREV:[jmp?(L5)] - w(a|) + r(object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } }) -> PREV:[jmp?(L5)] + w(a|) L1: 1 NEXT:[] error: @@ -271,14 +277,15 @@ fun foo() { L3: 3 4 mark({ x = 3 }) - r(3) -> - w(x|) + magic(x) -> + r(3) -> + w(x|, ) L4: - 3 NEXT:[] + 3 NEXT:[] error: - PREV:[] + PREV:[] sink: - PREV:[, ] + PREV:[, ] ===================== == bar == fun bar() { @@ -288,12 +295,13 @@ fun bar() { L6: 3 4 mark({ x = 4 }) - r(4) -> - w(x|) + magic(x) -> + r(4) -> + w(x|, ) L7: - 3 NEXT:[] + 3 NEXT:[] error: - PREV:[] + PREV:[] sink: - PREV:[, ] + PREV:[, ] ===================== diff --git a/compiler/testData/cfg/declarations/local/LocalDeclarations.values b/compiler/testData/cfg/declarations/local/LocalDeclarations.values index fbd92f5b92b..4972ccbbe1b 100644 --- a/compiler/testData/cfg/declarations/local/LocalDeclarations.values +++ b/compiler/testData/cfg/declarations/local/LocalDeclarations.values @@ -33,8 +33,8 @@ fun test1() { } } --------------------- -1 NEW() -object { val x : Int { $x = 1 } } NEW() +1 NEW() +object { val x : Int { $x = 1 } } NEW() ===================== == O == object O { @@ -44,7 +44,7 @@ object O { } } --------------------- -1 NEW() +1 NEW() ===================== == test2 == fun test2() { @@ -75,7 +75,7 @@ fun inner_bar() { y = 10 } --------------------- -10 NEW() +10 NEW() ===================== == test4 == fun test4() { @@ -91,15 +91,15 @@ fun test4() { } } --------------------- -1 NEW() -object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } } NEW() +1 NEW() +object { val x : Int val y : Int { $x = 1 } fun ggg() { y = 10 } } NEW() ===================== == ggg == fun ggg() { y = 10 } --------------------- -10 NEW() +10 NEW() ===================== == test5 == fun test5() { @@ -118,20 +118,20 @@ fun test5() { } --------------------- 1 NEW() -2 NEW() -object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } } NEW() +2 NEW() +object { var x = 1 { $x = 2 } fun foo() { x = 3 } fun bar() { x = 4 } } NEW() ===================== == foo == fun foo() { x = 3 } --------------------- -3 NEW() +3 NEW() ===================== == bar == fun bar() { x = 4 } --------------------- -4 NEW() +4 NEW() ===================== diff --git a/compiler/testData/cfg/declarations/properties/backingFieldAccess.instructions b/compiler/testData/cfg/declarations/properties/backingFieldAccess.instructions index 75720015929..4aebb6cfe36 100644 --- a/compiler/testData/cfg/declarations/properties/backingFieldAccess.instructions +++ b/compiler/testData/cfg/declarations/properties/backingFieldAccess.instructions @@ -12,7 +12,8 @@ L0: 1 v(val a: Int get() = 1) 2 mark({ $a }) - r($a) -> + magic($a) -> + r($a|) -> L1: 1 NEXT:[] error: diff --git a/compiler/testData/cfg/declarations/properties/backingFieldAccess.values b/compiler/testData/cfg/declarations/properties/backingFieldAccess.values index 88d1ae6dd4e..1b32ec1b88e 100644 --- a/compiler/testData/cfg/declarations/properties/backingFieldAccess.values +++ b/compiler/testData/cfg/declarations/properties/backingFieldAccess.values @@ -8,6 +8,6 @@ class C { } } --------------------- -$a NEW() -{ $a } COPY +$a NEW() +{ $a } COPY ===================== diff --git a/compiler/testData/cfg/expressions/Assignments.instructions b/compiler/testData/cfg/expressions/Assignments.instructions index 32aaef586a0..f2c24747477 100644 --- a/compiler/testData/cfg/expressions/Assignments.instructions +++ b/compiler/testData/cfg/expressions/Assignments.instructions @@ -70,9 +70,9 @@ L5: mark(Test()) call(Test, ) -> w(t|) - r(1) -> - r(t) -> - w(t.x|, ) + r(t) -> + r(1) -> + w(t.x|, ) mark(t.x += 1) mark(t.x) r(t) -> diff --git a/compiler/testData/cfg/expressions/Assignments.values b/compiler/testData/cfg/expressions/Assignments.values index 3e151ef8ae2..122e8516b37 100644 --- a/compiler/testData/cfg/expressions/Assignments.values +++ b/compiler/testData/cfg/expressions/Assignments.values @@ -35,8 +35,8 @@ false NEW() true NEW() false && true NEW(, ) Test() NEW() -t NEW() -1 NEW() +t NEW() +1 NEW() t NEW() x NEW() t.x COPY diff --git a/compiler/testData/cfg/expressions/chainedQualifiedExpression.instructions b/compiler/testData/cfg/expressions/chainedQualifiedExpression.instructions index 1595b04a88c..dd79aa7acbc 100644 --- a/compiler/testData/cfg/expressions/chainedQualifiedExpression.instructions +++ b/compiler/testData/cfg/expressions/chainedQualifiedExpression.instructions @@ -111,112 +111,113 @@ L0: mark(BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel)) mark(add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel)) mark(BunchKeywordRegister()) - call(BunchKeywordRegister, ) -> - r(ABSTRACT_KEYWORD) -> - r(inTopLevel) -> + magic(BunchKeywordRegister()) -> + call(BunchKeywordRegister, |) -> + r(ABSTRACT_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , ) -> - r(FINAL_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , ) -> + r(FINAL_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , ) -> - r(OPEN_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , ) -> + r(OPEN_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , ) -> - r(INTERNAL_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , ) -> + r(INTERNAL_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , , ) -> - r(PRIVATE_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , , ) -> + r(PRIVATE_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , , ) -> - r(PROTECTED_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , , ) -> + r(PROTECTED_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , , ) -> - r(PUBLIC_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , , ) -> + r(PUBLIC_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , , ) -> - r(CLASS_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , , ) -> + r(CLASS_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , ) -> - r(ENUM_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , ) -> + r(ENUM_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , ) -> - r(FUN_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , ) -> + r(FUN_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , ) -> - r(GET_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , ) -> + r(GET_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , ) -> - r(SET_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , ) -> + r(SET_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , ) -> - r(TRAIT_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , ) -> + r(TRAIT_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , ) -> - r(VAL_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , ) -> + r(VAL_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , ) -> - r(VAR_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , ) -> + r(VAR_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , ) -> - r(TYPE_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , ) -> + r(TYPE_KEYWORD) -> r(inTopLevel) -> r(inTopLevel) -> - call(add, add|, , , , ) -> - r(IMPORT_KEYWORD) -> - r(inTopLevel) -> - call(add, add|, , ) -> - r(PACKAGE_KEYWORD) -> - r(inTopLevel) -> - call(add, add|, , ) -> - r(OVERRIDE_KEYWORD) -> - r(inTopLevel) -> - call(add, add|, , ) -> - r(IN_KEYWORD) -> - r(inTopLevel) -> + r(inTopLevel) -> + call(add, add|, , , , ) -> + r(IMPORT_KEYWORD) -> + r(inTopLevel) -> + call(add, add|, , ) -> + r(PACKAGE_KEYWORD) -> + r(inTopLevel) -> + call(add, add|, , ) -> + r(OVERRIDE_KEYWORD) -> + r(inTopLevel) -> + call(add, add|, , ) -> + r(IN_KEYWORD) -> r(inTopLevel) -> - call(add, add|, , , ) -> - r(OUT_KEYWORD) -> - r(inTopLevel) -> - call(add, add|, , ) -> - r(OBJECT_KEYWORD) -> + r(inTopLevel) -> + call(add, add|, , , ) -> + r(OUT_KEYWORD) -> + r(inTopLevel) -> + call(add, add|, , ) -> + r(OBJECT_KEYWORD) -> error(unresolvedCode, No resolved call) - magic(unresolvedCode) -> - call(add, add|, , ) -> - call(registerAll, registerAll|) -> + magic(unresolvedCode) -> + call(add, add|, , ) -> + call(registerAll, registerAll|) -> L1: 1 NEXT:[] error: diff --git a/compiler/testData/cfg/expressions/chainedQualifiedExpression.values b/compiler/testData/cfg/expressions/chainedQualifiedExpression.values index 1b173b29e67..54a5ded8e24 100644 --- a/compiler/testData/cfg/expressions/chainedQualifiedExpression.values +++ b/compiler/testData/cfg/expressions/chainedQualifiedExpression.values @@ -51,135 +51,135 @@ public open class JetKeywordCompletionContributor() { } --------------------- 1.0 NEW() -BunchKeywordRegister() NEW() -ABSTRACT_KEYWORD NEW() -inTopLevel NEW() +BunchKeywordRegister() NEW() +ABSTRACT_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() -add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) NEW(, , , , ) -BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) COPY -FINAL_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) NEW(, , , , ) +BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) COPY +FINAL_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() -add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) NEW(, , , , ) -BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) COPY -OPEN_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) NEW(, , , , ) +BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) COPY +OPEN_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() -add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) NEW(, , , , ) -BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) COPY -INTERNAL_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) NEW(, , , , ) +BunchKeywordRegister() .add(ABSTRACT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(FINAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) .add(OPEN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) COPY +INTERNAL_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() inTopLevel NEW() -add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) 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) COPY -PRIVATE_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(INTERNAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) 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) COPY +PRIVATE_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() inTopLevel NEW() -add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) 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) COPY -PROTECTED_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(PRIVATE_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) 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) COPY +PROTECTED_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() inTopLevel NEW() -add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) 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) COPY -PUBLIC_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(PROTECTED_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) 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) COPY +PUBLIC_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() inTopLevel NEW() -add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) 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) COPY -CLASS_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(PUBLIC_KEYWORD, inTopLevel, inTopLevel, inTopLevel, inTopLevel) 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) COPY +CLASS_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() -add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY -ENUM_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(CLASS_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY +ENUM_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() -add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY -FUN_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(ENUM_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY +FUN_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() -add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY -GET_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(FUN_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY +GET_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() -add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY -SET_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(GET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY +SET_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() -add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY -TRAIT_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(SET_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY +TRAIT_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() -add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY -VAL_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(TRAIT_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY +VAL_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() -add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY -VAR_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(VAL_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY +VAR_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() -add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY -TYPE_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(VAR_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY +TYPE_KEYWORD NEW() inTopLevel NEW() inTopLevel NEW() -add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY -IMPORT_KEYWORD NEW() -inTopLevel NEW() -add(IMPORT_KEYWORD, inTopLevel) 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) COPY -PACKAGE_KEYWORD NEW() -inTopLevel NEW() -add(PACKAGE_KEYWORD, inTopLevel) 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) COPY -OVERRIDE_KEYWORD NEW() -inTopLevel NEW() -add(OVERRIDE_KEYWORD, inTopLevel) 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) COPY -IN_KEYWORD NEW() -inTopLevel NEW() +inTopLevel NEW() +add(TYPE_KEYWORD, inTopLevel, inTopLevel, inTopLevel) 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) COPY +IMPORT_KEYWORD NEW() +inTopLevel NEW() +add(IMPORT_KEYWORD, inTopLevel) 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) COPY +PACKAGE_KEYWORD NEW() +inTopLevel NEW() +add(PACKAGE_KEYWORD, inTopLevel) 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) COPY +OVERRIDE_KEYWORD NEW() +inTopLevel NEW() +add(OVERRIDE_KEYWORD, inTopLevel) 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) COPY +IN_KEYWORD NEW() inTopLevel NEW() -add(IN_KEYWORD, inTopLevel, inTopLevel) 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) COPY -OUT_KEYWORD NEW() -inTopLevel NEW() -add(OUT_KEYWORD, inTopLevel) 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) COPY -OBJECT_KEYWORD NEW() -unresolvedCode NEW() -add(OBJECT_KEYWORD, unresolvedCode) 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) COPY -registerAll() 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) .registerAll() 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() } COPY +inTopLevel NEW() +add(IN_KEYWORD, inTopLevel, inTopLevel) 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) COPY +OUT_KEYWORD NEW() +inTopLevel NEW() +add(OUT_KEYWORD, inTopLevel) 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) COPY +OBJECT_KEYWORD NEW() +unresolvedCode NEW() +add(OBJECT_KEYWORD, unresolvedCode) 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) COPY +registerAll() 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) .registerAll() 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() } COPY ===================== == ABSTRACT_KEYWORD == val ABSTRACT_KEYWORD = JetToken()