| summaryrefslogtreecommitdiff | 
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-08-14 00:05:09 +0200 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-08-14 00:05:09 +0200 | 
| commit | 41c53b856944146e5cd1d1713ba11b931790978a (patch) | |
| tree | 148a1e913d5a85b2b2c4a29f48baa79c2411b2c1 /src | |
| parent | 0e26f43837b10506f6c687bdf9f247f359a97dbd (diff) | |
...
Diffstat (limited to 'src')
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; | 


