| summaryrefslogtreecommitdiff |
diff options
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; |


