| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/src/tonkadur/fate/v1/lang/computation/Access.java | 18 | ||||
| -rw-r--r-- | src/core/src/tonkadur/fate/v1/parser/FateParser.g4 | 29 | 
2 files changed, 24 insertions, 23 deletions
| diff --git a/src/core/src/tonkadur/fate/v1/lang/computation/Access.java b/src/core/src/tonkadur/fate/v1/lang/computation/Access.java index f99d04b..1b1f2b3 100644 --- a/src/core/src/tonkadur/fate/v1/lang/computation/Access.java +++ b/src/core/src/tonkadur/fate/v1/lang/computation/Access.java @@ -17,12 +17,12 @@ import tonkadur.fate.v1.lang.meta.Reference;  import tonkadur.fate.v1.lang.type.CollectionType;  import tonkadur.fate.v1.lang.type.Type; -public class Access extends Reference +public class Access extends Computation  {     /***************************************************************************/     /**** MEMBERS **************************************************************/     /***************************************************************************/ -   protected final Reference parent; +   protected final Computation parent;     protected final Computation index;     /***************************************************************************/ @@ -32,12 +32,12 @@ public class Access extends Reference     protected Access     (        final Origin origin, -      final Reference parent, +      final Computation parent,        final Type type,        final Computation index     )     { -      super(origin, type, (parent.get_name() + "." + index.toString())); +      super(origin, type);        this.parent = parent;        this.index = index; @@ -50,7 +50,7 @@ public class Access extends Reference     public static Access build     (        final Origin origin, -      Reference parent, +      Computation parent,        final Computation index     )     throws @@ -76,7 +76,7 @@ public class Access extends Reference                 index.get_origin(),                 current_type,                 Collections.singleton(Type.INT), -               parent.get_name() +               index.toString()              )           );        } @@ -90,7 +90,7 @@ public class Access extends Reference                 origin,                 current_type,                 Collections.singleton(Type.LIST), -               parent.get_name() +               parent.toString()              )           ); @@ -118,7 +118,7 @@ public class Access extends Reference        return index;     } -   public Reference get_parent () +   public Computation get_parent ()     {        return parent;     } @@ -132,7 +132,7 @@ public class Access extends Reference        sb.append("(Access (");        sb.append(type.get_name());        sb.append(") "); -      sb.append(name); +      sb.append(parent.toString());        sb.append(".");        sb.append(index.toString());        sb.append(")"); diff --git a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 index d618513..073b521 100644 --- a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 +++ b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 @@ -3667,6 +3667,21 @@ returns [Computation result]           );     } +   | ACCESS_KW value_reference WS+ non_text_value R_PAREN +   { +      $result = +         Access.build +         ( +            CONTEXT.get_origin_at +            ( +               ($ACCESS_KW.getLine()), +               ($ACCESS_KW.getCharPositionInLine()) +            ), +            ($value_reference.result), +            ($non_text_value.result) +         ); +   } +     | FOLDL_KW           fun=non_text_value WS+           init=value WS+ @@ -4854,20 +4869,6 @@ returns [Reference result]           );     } -   | ACCESS_KW value_reference WS+ value R_PAREN -   { -      $result = -         Access.build -         ( -            CONTEXT.get_origin_at -            ( -               ($ACCESS_KW.getLine()), -               ($ACCESS_KW.getCharPositionInLine()) -            ), -            ($value_reference.result), -            ($value.result) -         ); -   }     | (WORD | (VARIABLE_KW WORD WS* R_PAREN))     { | 


