summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/AddressOperator.java (renamed from src/core/src/tonkadur/fate/v1/lang/computation/RefOperator.java)16
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/AtReference.java6
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/computation/New.java4
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java2
-rw-r--r--src/core/src/tonkadur/fate/v1/lang/type/PointerType.java (renamed from src/core/src/tonkadur/fate/v1/lang/type/RefType.java)20
-rw-r--r--src/core/src/tonkadur/fate/v1/parser/FateLexer.g42
-rw-r--r--src/core/src/tonkadur/fate/v1/parser/FateParser.g44
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java26
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java91
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/util/BinarySearch.java2
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/util/Clear.java4
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/util/CountOccurrences.java4
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/util/InsertAt.java2
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/util/RemoveAllOf.java8
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/util/RemoveAt.java2
-rw-r--r--src/core/src/tonkadur/wyrd/v1/compiler/util/ReverseList.java2
16 files changed, 108 insertions, 87 deletions
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/RefOperator.java b/src/core/src/tonkadur/fate/v1/lang/computation/AddressOperator.java
index 54cdaad..290918a 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/RefOperator.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/AddressOperator.java
@@ -2,13 +2,13 @@ package tonkadur.fate.v1.lang.computation;
import tonkadur.parser.Origin;
-import tonkadur.fate.v1.lang.type.RefType;
+import tonkadur.fate.v1.lang.type.PointerType;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
import tonkadur.fate.v1.lang.meta.Reference;
import tonkadur.fate.v1.lang.meta.Computation;
-public class RefOperator extends Computation
+public class AddressOperator extends Computation
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
@@ -19,9 +19,13 @@ public class RefOperator extends Computation
/**** PROTECTED ************************************************************/
/***************************************************************************/
/**** Constructors *********************************************************/
- public RefOperator (final Origin origin, final Reference referred)
+ public AddressOperator (final Origin origin, final Reference referred)
{
- super(origin, new RefType(origin, referred.get_type(), "auto generated"));
+ super
+ (
+ origin,
+ new PointerType(origin, referred.get_type(), "auto generated")
+ );
this.referred = referred;
}
@@ -33,7 +37,7 @@ public class RefOperator extends Computation
public void get_visited_by (final ComputationVisitor cv)
throws Throwable
{
- cv.visit_ref_operator(this);
+ cv.visit_address_operator(this);
}
public Reference get_target ()
@@ -48,7 +52,7 @@ public class RefOperator extends Computation
final StringBuilder sb = new StringBuilder();
sb.append(origin.toString());
- sb.append("(Ref ");
+ sb.append("(AddressOf ");
sb.append(referred.get_name());
sb.append(") ");
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/AtReference.java b/src/core/src/tonkadur/fate/v1/lang/computation/AtReference.java
index a26d399..bfe7920 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/AtReference.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/AtReference.java
@@ -14,7 +14,7 @@ import tonkadur.fate.v1.lang.Variable;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
import tonkadur.fate.v1.lang.meta.Reference;
-import tonkadur.fate.v1.lang.type.RefType;
+import tonkadur.fate.v1.lang.type.PointerType;
import tonkadur.fate.v1.lang.type.Type;
public class AtReference extends Reference
@@ -56,7 +56,7 @@ public class AtReference extends Reference
current_type = parent.get_type();
- if (!(current_type instanceof RefType))
+ if (!(current_type instanceof PointerType))
{
ErrorManager.handle
(
@@ -73,7 +73,7 @@ public class AtReference extends Reference
}
else
{
- current_type = ((RefType) current_type).get_referenced_type();
+ current_type = ((PointerType) current_type).get_referenced_type();
}
return new AtReference(origin, current_type, parent);
diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/New.java b/src/core/src/tonkadur/fate/v1/lang/computation/New.java
index 83eef1f..4f036af 100644
--- a/src/core/src/tonkadur/fate/v1/lang/computation/New.java
+++ b/src/core/src/tonkadur/fate/v1/lang/computation/New.java
@@ -2,7 +2,7 @@ package tonkadur.fate.v1.lang.computation;
import tonkadur.parser.Origin;
-import tonkadur.fate.v1.lang.type.RefType;
+import tonkadur.fate.v1.lang.type.PointerType;
import tonkadur.fate.v1.lang.type.Type;
import tonkadur.fate.v1.lang.meta.ComputationVisitor;
@@ -21,7 +21,7 @@ public class New extends Computation
/**** Constructors *********************************************************/
public New (final Origin origin, final Type t)
{
- super(origin, new RefType(origin, t, "auto generated"));
+ super(origin, new PointerType(origin, t, "auto generated"));
this.target_type = t;
}
diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java b/src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java
index 0b992cb..32fcee7 100644
--- a/src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java
+++ b/src/core/src/tonkadur/fate/v1/lang/meta/ComputationVisitor.java
@@ -58,7 +58,7 @@ public interface ComputationVisitor
public void visit_paragraph (final Paragraph n)
throws Throwable;
- public void visit_ref_operator (final RefOperator n)
+ public void visit_address_operator (final AddressOperator n)
throws Throwable;
public void visit_text_with_effect (final TextWithEffect n)
diff --git a/src/core/src/tonkadur/fate/v1/lang/type/RefType.java b/src/core/src/tonkadur/fate/v1/lang/type/PointerType.java
index 15d9c53..b610954 100644
--- a/src/core/src/tonkadur/fate/v1/lang/type/RefType.java
+++ b/src/core/src/tonkadur/fate/v1/lang/type/PointerType.java
@@ -4,7 +4,7 @@ import tonkadur.parser.Origin;
import tonkadur.fate.v1.lang.meta.DeclaredEntity;
-public class RefType extends Type
+public class PointerType extends Type
{
/***************************************************************************/
/**** MEMBERS **************************************************************/
@@ -16,7 +16,7 @@ public class RefType extends Type
/***************************************************************************/
/**** Constructors *********************************************************/
- public RefType
+ public PointerType
(
final Origin origin,
final Type referenced_type,
@@ -38,11 +38,11 @@ public class RefType extends Type
@Override
public boolean can_be_used_as (final Type t)
{
- if (t instanceof RefType)
+ if (t instanceof PointerType)
{
- final RefType dt;
+ final PointerType dt;
- dt = (RefType) t;
+ dt = (PointerType) t;
return referenced_type.can_be_used_as(dt.referenced_type);
}
@@ -60,18 +60,18 @@ public class RefType extends Type
public DeclaredEntity generate_comparable_to (final DeclaredEntity de)
{
final Type resulting_referenced_type;
- final RefType dt;
+ final PointerType dt;
- if (!(de instanceof RefType))
+ if (!(de instanceof PointerType))
{
return Type.ANY;
}
- dt = (RefType) de;
+ dt = (PointerType) de;
resulting_referenced_type =
(Type) referenced_type.generate_comparable_to(dt.referenced_type);
- return new RefType(get_origin(), resulting_referenced_type, name);
+ return new PointerType(get_origin(), resulting_referenced_type, name);
}
@Override
@@ -86,7 +86,7 @@ public class RefType extends Type
{
final StringBuilder sb = new StringBuilder();
- sb.append("(Ref to ");
+ sb.append("(Pointer to ");
sb.append(referenced_type.toString());
sb.append(")::");
sb.append(name);
diff --git a/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4 b/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4
index ae3763d..6fcb44b 100644
--- a/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4
+++ b/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4
@@ -76,7 +76,7 @@ PLAYER_CHOICE_KW: L_PAREN ('choice'|'user'US'choice'|'player'US'choice') SEP+;
PLUS_KW: L_PAREN ('plus'|'+') SEP+;
POWER_KW: L_PAREN ('power'|'^'|'**'|'pow') SEP+;
RANDOM_KW: L_PAREN ('random'|'rand'|'rnd') SEP+;
-REF_KW: L_PAREN (('ref'('erence'?))|'ptr') SEP+;
+REF_KW: L_PAREN (((('ref'('erence'?))|'ptr'|'pointer')(US'to')?)|('address'(US'of'))) SEP+;
REMOVE_ALL_KW: L_PAREN 'remove'US'all' SEP+;
REVERSE_KW: L_PAREN 'reverse'(US'list')? SEP+;
REMOVE_ONE_KW: L_PAREN 'remove'US'one' SEP+;
diff --git a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4
index 66ffb0f..fffe6a3 100644
--- a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4
+++ b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4
@@ -1482,7 +1482,7 @@ returns [Type result]
);
$result =
- new RefType
+ new PointerType
(
start_origin,
($type.result),
@@ -2349,7 +2349,7 @@ returns [Computation result]
| REF_KW value_reference WS* R_PAREN
{
$result =
- new RefOperator
+ new AddressOperator
(
CONTEXT.get_origin_at
(
diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java
index afd53c2..ac24ae7 100644
--- a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java
+++ b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java
@@ -13,6 +13,7 @@ import tonkadur.wyrd.v1.lang.meta.Computation;
import tonkadur.wyrd.v1.lang.meta.Instruction;
import tonkadur.wyrd.v1.lang.type.Type;
+import tonkadur.wyrd.v1.lang.type.PointerType;
import tonkadur.wyrd.v1.lang.instruction.SetValue;
@@ -25,8 +26,8 @@ import tonkadur.wyrd.v1.compiler.util.CountOccurrences;
import tonkadur.wyrd.v1.lang.computation.*;
-
import tonkadur.wyrd.v1.lang.World;
+import tonkadur.wyrd.v1.lang.Register;
public class ComputationCompiler
implements tonkadur.fate.v1.lang.meta.ComputationVisitor
@@ -84,7 +85,7 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
{
if (result_as_address == null)
{
- System.err.println("[P] Missing generate_ref()!");
+ System.err.println("[P] Missing generate_address()!");
}
return result_as_address;
@@ -133,9 +134,9 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
}
@Override
- public void visit_at_address
+ public void visit_at_reference
(
- final tonkadur.fate.v1.lang.computation.AtAddress n
+ final tonkadur.fate.v1.lang.computation.AtReference n
)
throws Throwable
{
@@ -155,9 +156,9 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
(
compiler,
(
- (tonkadur.fate.v1.lang.type.AddressType)
+ (tonkadur.fate.v1.lang.type.PointerType)
n.get_parent().get_type()
- ).get_addressd_type()
+ ).get_referenced_type()
)
);
}
@@ -258,8 +259,7 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
else
{
final Iterator<Cons<ComputationCompiler, ComputationCompiler>> it;
- final Register result_register;
- final Address result_address;
+ final Register result;
Cons<ComputationCompiler, ComputationCompiler> next;
List<Instruction> new_value, new_cond;
Instruction prev_branch;
@@ -442,9 +442,9 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
}
@Override
- public void visit_field_address
+ public void visit_field_reference
(
- final tonkadur.fate.v1.lang.computation.FieldAddress n
+ final tonkadur.fate.v1.lang.computation.FieldReference n
)
throws Throwable
{
@@ -536,7 +536,7 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
(
new SetValue
(
- if_else_result.get_addresss(),
+ if_else_result.get_address(),
if_false_cc.get_computation()
)
);
@@ -597,7 +597,7 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
n.get_collection().get_visited_by(collection_compiler);
n.get_element().get_visited_by(element_compiler);
- collection_compiler.generate_ref();
+ collection_compiler.generate_address();
assimilate(collection_compiler);
assimilate(element_compiler);
@@ -1260,7 +1260,7 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor
assimilate(n_cc);
- result_as_computation = n_cc.get_address()
+ result_as_computation = n_cc.get_address();
}
@Override
diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java
index f088c1d..04a7bcd 100644
--- a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java
+++ b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java
@@ -1,6 +1,7 @@
package tonkadur.wyrd.v1.compiler.fate.v1;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -9,6 +10,7 @@ import tonkadur.error.Error;
import tonkadur.functional.Cons;
import tonkadur.wyrd.v1.lang.World;
+import tonkadur.wyrd.v1.lang.Register;
import tonkadur.wyrd.v1.lang.meta.Computation;
import tonkadur.wyrd.v1.lang.meta.Instruction;
@@ -158,8 +160,8 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
compiler.registers().release(element_index);
compiler.registers().release(collection_size);
- element_compiler.release_variables();
- address_compiler.release_variables();
+ element_compiler.release_registers();
+ address_compiler.release_registers();
}
protected void add_element_to_list
@@ -220,8 +222,8 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
)
);
- address_compiler.release_variables();
- element_compiler.release_variables();
+ address_compiler.release_registers();
+ element_compiler.release_registers();
}
@Override
@@ -306,8 +308,8 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
new Assert(cond_cc.get_computation(), msg_cc.get_computation())
);
- cond_cc.release_variables();
- msg_cc.release_variables();
+ cond_cc.release_registers();
+ msg_cc.release_registers();
}
@Override
@@ -344,7 +346,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
)
);
- address_compiler.release_variables();
+ address_compiler.release_registers();
}
public void visit_reverse_list
@@ -383,7 +385,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
)
);
- address_compiler.release_variables();
+ address_compiler.release_registers();
}
@Override
@@ -496,7 +498,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
previous_else_branch = current_branch;
- cc.release_variables();
+ cc.release_registers();
}
result.add(compiler.assembler().merge(previous_else_branch));
@@ -524,7 +526,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
result.add(new Display(cc.get_computation()));
- cc.release_variables();
+ cc.release_registers();
}
@Override
@@ -536,7 +538,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
cc = new ComputationCompiler(compiler);
- n.get_address().get_visited_by(cc);
+ n.get_reference().get_visited_by(cc);
if (cc.has_init())
{
@@ -550,14 +552,14 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
System.err.println
(
"[P] Argument in (free "
- + n.get_address()
+ + n.get_reference()
+ ") did not compile to a address."
);
}
result.add(new Remove(target));
- cc.release_variables();
+ cc.release_registers();
}
@Override
@@ -625,7 +627,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
}
compiler.assembler().pop_context_label("breakable");
- cc.release_variables();
+ cc.release_registers();
}
@Override
@@ -681,7 +683,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
);
compiler.assembler().pop_context_label("breakable");
- cc.release_variables();
+ cc.release_registers();
}
@Override
@@ -758,7 +760,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
}
compiler.assembler().pop_context_label("breakable");
- cc.release_variables();
+ cc.release_registers();
}
@Override
@@ -789,7 +791,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
index = compiler.registers().reserve(Type.INT);
collection_size = compiler.registers().reserve(Type.INT);
- result.add(new SetValue(index, Constant.ZERO));
+ result.add(new SetValue(index.get_address(), Constant.ZERO));
n.get_collection().get_visited_by(cc);
@@ -932,8 +934,8 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
compiler.registers().release(collection_size);
- index_cc.release_variables();
- collection_cc.release_variables();
+ index_cc.release_registers();
+ collection_cc.release_registers();
}
@@ -1030,7 +1032,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
previous_else_branch = current_branch;
- cc.release_variables();
+ cc.release_registers();
}
result.add(compiler.assembler().merge(previous_else_branch));
@@ -1080,7 +1082,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
for (final ComputationCompiler cc: cc_list)
{
- cc.release_variables();
+ cc.release_registers();
}
}
@@ -1125,7 +1127,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
)
);
- cc.release_variables();
+ cc.release_registers();
}
@Override
@@ -1165,7 +1167,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
)
);
- cc.release_variables();
+ cc.release_registers();
}
@Override
@@ -1300,7 +1302,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
)
);
- cc.release_variables();
+ cc.release_registers();
}
@Override
@@ -1421,14 +1423,13 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
).is_set()
)
{
- final Computation value_of_elem, value_of_collection_size;
+ final Computation value_of_elem;
final Register index, found;
index = compiler.registers().reserve(Type.INT);
found = compiler.registers().reserve(Type.BOOLEAN);
value_of_elem = new ValueOf(elem);
- value_of_collection_size = new ValueOf(collection_size);
result.add
(
@@ -1437,14 +1438,14 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
compiler.registers(),
compiler.assembler(),
new ValueOf(elem),
- value_of_collection_size,
+ collection_size.get_value(),
collection,
found.get_address(),
index.get_address()
)
);
- elem_cc.release_variables();
+ elem_cc.release_registers();
result.add
(
@@ -1458,7 +1459,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
compiler.registers(),
compiler.assembler(),
index.get_address(),
- value_of_collection_size,
+ collection_size.get_value(),
collection
)
)
@@ -1476,15 +1477,15 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
compiler.registers(),
compiler.assembler(),
new ValueOf(elem),
- new ValueOf(collection_size),
+ collection_size.get_value(),
collection
)
);
- elem_cc.release_variables();
+ elem_cc.release_registers();
}
- collection_cc.release_variables();
+ collection_cc.release_registers();
compiler.registers().release(collection_size);
}
@@ -1536,7 +1537,6 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
final ComputationCompiler elem_cc, collection_cc;
final Register collection_size, found, index;
final Address elem, collection;
- final Computation value_of_collection_size;
elem_cc = new ComputationCompiler(compiler);
collection_cc = new ComputationCompiler(compiler);
@@ -1563,12 +1563,13 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
elem = elem_cc.get_address();
collection = collection_cc.get_address();
- value_of_collection_size = new ValueOf(collection_size);
-
- result.add(new SetValue(elem, elem_cc.get_computation()));
- result.add(new SetValue(collection_size, new Size(collection)));
+ result.add(new SetValue(elem.get_address(), elem_cc.get_computation()));
+ result.add
+ (
+ new SetValue(collection_size.get_address(), new Size(collection))
+ );
- elem_cc.release_variables();
+ elem_cc.release_registers();
if
(
@@ -1585,7 +1586,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
compiler.registers(),
compiler.assembler(),
new ValueOf(elem),
- value_of_collection_size,
+ collection_size.get_value(),
collection,
found.get_address(),
index.get_address()
@@ -1601,7 +1602,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
compiler.registers(),
compiler.assembler(),
new ValueOf(elem),
- value_of_collection_size,
+ collection_size.get_value(),
collection,
found.get_address(),
index.get_address()
@@ -1617,7 +1618,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
(
compiler.registers(),
compiler.assembler(),
- new ValueOf(found),
+ new ValueOf(found.get_address()),
RemoveAt.generate
(
compiler.registers(),
@@ -1633,7 +1634,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
compiler.registers().release(found);
compiler.registers().release(collection_size);
- collection_cc.release_variables();
+ collection_cc.release_registers();
}
@Override
@@ -1691,7 +1692,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
result.add(value_cc.get_init());
}
- n.get_address().get_visited_by(address_cc);
+ n.get_reference().get_visited_by(address_cc);
if (address_cc.has_init())
{
@@ -1703,7 +1704,7 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor
new SetValue(address_cc.get_address(), value_cc.get_computation())
);
- value_cc.release_variables();
- address_cc.release_variables();
+ value_cc.release_registers();
+ address_cc.release_registers();
}
}
diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/util/BinarySearch.java b/src/core/src/tonkadur/wyrd/v1/compiler/util/BinarySearch.java
index b17104a..b08a376 100644
--- a/src/core/src/tonkadur/wyrd/v1/compiler/util/BinarySearch.java
+++ b/src/core/src/tonkadur/wyrd/v1/compiler/util/BinarySearch.java
@@ -4,6 +4,8 @@ import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
+import tonkadur.wyrd.v1.lang.Register;
+
import tonkadur.wyrd.v1.lang.type.Type;
import tonkadur.wyrd.v1.lang.meta.Instruction;
diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/util/Clear.java b/src/core/src/tonkadur/wyrd/v1/compiler/util/Clear.java
index 9ec6b4f..cb0929c 100644
--- a/src/core/src/tonkadur/wyrd/v1/compiler/util/Clear.java
+++ b/src/core/src/tonkadur/wyrd/v1/compiler/util/Clear.java
@@ -4,6 +4,8 @@ import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
+import tonkadur.wyrd.v1.lang.Register;
+
import tonkadur.wyrd.v1.lang.type.Type;
import tonkadur.wyrd.v1.lang.type.MapType;
@@ -60,8 +62,6 @@ public class Clear
iterator = registers.reserve(Type.INT);
- value_of_iterator = new ValueOf(iterator);
-
/* (set .iterator collection_size) */
result.add(new SetValue(iterator.get_address(), collection_size));
diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/util/CountOccurrences.java b/src/core/src/tonkadur/wyrd/v1/compiler/util/CountOccurrences.java
index 1f8571a..5fb9fce 100644
--- a/src/core/src/tonkadur/wyrd/v1/compiler/util/CountOccurrences.java
+++ b/src/core/src/tonkadur/wyrd/v1/compiler/util/CountOccurrences.java
@@ -3,6 +3,8 @@ package tonkadur.wyrd.v1.compiler.util;
import java.util.List;
import java.util.ArrayList;
+import tonkadur.wyrd.v1.lang.Register;
+
import tonkadur.wyrd.v1.lang.type.Type;
import tonkadur.wyrd.v1.lang.meta.Computation;
@@ -73,7 +75,7 @@ public class CountOccurrences
(
new SetValue
(
- index.get_addresss(),
+ index.get_address(),
Operation.minus(index.get_value(), Constant.ONE)
)
);
diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/util/InsertAt.java b/src/core/src/tonkadur/wyrd/v1/compiler/util/InsertAt.java
index fa3a112..7894330 100644
--- a/src/core/src/tonkadur/wyrd/v1/compiler/util/InsertAt.java
+++ b/src/core/src/tonkadur/wyrd/v1/compiler/util/InsertAt.java
@@ -4,6 +4,8 @@ import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
+import tonkadur.wyrd.v1.lang.Register;
+
import tonkadur.wyrd.v1.lang.type.Type;
import tonkadur.wyrd.v1.lang.meta.Instruction;
diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/util/RemoveAllOf.java b/src/core/src/tonkadur/wyrd/v1/compiler/util/RemoveAllOf.java
index 43716a1..e8daadf 100644
--- a/src/core/src/tonkadur/wyrd/v1/compiler/util/RemoveAllOf.java
+++ b/src/core/src/tonkadur/wyrd/v1/compiler/util/RemoveAllOf.java
@@ -4,6 +4,8 @@ import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
+import tonkadur.wyrd.v1.lang.Register;
+
import tonkadur.wyrd.v1.lang.type.Type;
import tonkadur.wyrd.v1.lang.meta.Computation;
@@ -108,7 +110,11 @@ public class RemoveAllOf
/* (set .end (- (collection_size) 1) */
result.add
(
- new SetValue(end, Operation.minus(collection_size, Constant.ONE))
+ new SetValue
+ (
+ end.get_address(),
+ Operation.minus(collection_size, Constant.ONE)
+ )
);
/*
diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/util/RemoveAt.java b/src/core/src/tonkadur/wyrd/v1/compiler/util/RemoveAt.java
index c5fb725..d540d67 100644
--- a/src/core/src/tonkadur/wyrd/v1/compiler/util/RemoveAt.java
+++ b/src/core/src/tonkadur/wyrd/v1/compiler/util/RemoveAt.java
@@ -4,6 +4,8 @@ import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
+import tonkadur.wyrd.v1.lang.Register;
+
import tonkadur.wyrd.v1.lang.type.Type;
import tonkadur.wyrd.v1.lang.type.MapType;
diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/util/ReverseList.java b/src/core/src/tonkadur/wyrd/v1/compiler/util/ReverseList.java
index d83aff3..2d5e269 100644
--- a/src/core/src/tonkadur/wyrd/v1/compiler/util/ReverseList.java
+++ b/src/core/src/tonkadur/wyrd/v1/compiler/util/ReverseList.java
@@ -4,6 +4,8 @@ import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
+import tonkadur.wyrd.v1.lang.Register;
+
import tonkadur.wyrd.v1.lang.type.Type;
import tonkadur.wyrd.v1.lang.type.MapType;