| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src/core')
4 files changed, 46 insertions, 3 deletions
| diff --git a/src/core/src/tonkadur/fate/v1/lang/World.java b/src/core/src/tonkadur/fate/v1/lang/World.java index 4b19cce..98a6f06 100644 --- a/src/core/src/tonkadur/fate/v1/lang/World.java +++ b/src/core/src/tonkadur/fate/v1/lang/World.java @@ -259,6 +259,12 @@ public class World        sb.append(System.lineSeparator());        sb.append(System.lineSeparator()); +      sb.append("Sequences: "); +      sb.append(System.lineSeparator()); +      sb.append(sequence_collection.toString()); +      sb.append(System.lineSeparator()); +      sb.append(System.lineSeparator()); +        sb.append(")");        return sb.toString(); diff --git a/src/core/src/tonkadur/fate/v1/lang/meta/DeclarationCollection.java b/src/core/src/tonkadur/fate/v1/lang/meta/DeclarationCollection.java index 0250981..43d8209 100644 --- a/src/core/src/tonkadur/fate/v1/lang/meta/DeclarationCollection.java +++ b/src/core/src/tonkadur/fate/v1/lang/meta/DeclarationCollection.java @@ -91,7 +91,16 @@ public class DeclarationCollection <Declared extends DeclaredEntity>        final StringBuilder sb = new StringBuilder();        sb.append("Default Value: "); -      sb.append(value_on_missing.toString()); + +      if (value_on_missing == null) +      { +         sb.append("null"); +      } +      else +      { +         sb.append(value_on_missing.toString()); +      } +        sb.append(System.lineSeparator());        for (final Map.Entry<String, Declared> entry: collection.entrySet()) @@ -99,7 +108,15 @@ public class DeclarationCollection <Declared extends DeclaredEntity>           sb.append("- ");           sb.append(entry.getKey());           sb.append(": "); -         sb.append(entry.getValue().toString()); + +         if (entry.getValue() == null) +         { +            sb.append("null"); +         } +         else +         { +            sb.append(entry.getValue().toString()); +         }           sb.append(System.lineSeparator());        } diff --git a/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4 b/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4 index 6fcb44b..294eac8 100644 --- a/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4 +++ b/src/core/src/tonkadur/fate/v1/parser/FateLexer.g4 @@ -32,7 +32,7 @@ DECLARE_EVENT_TYPE_KW: L_PAREN ('declare'|'define'|'def')US'event'(US'type')? SE  DECLARE_TEXT_EFFECT_KW: L_PAREN ('declare'|'define'|'def')US'text'US'effect' SEP+;  DECLARE_VARIABLE_KW: L_PAREN 'global' SEP+;  LOCAL_KW: L_PAREN 'local' SEP+; -DEFINE_SEQUENCE_KW: L_PAREN ('declare'|'define'|'def')US'seq'('uence')? SEP+; +DEFINE_SEQUENCE_KW: L_PAREN ('declare'|'define'|'def')US(('seq'('uence')?)|('proc'('edure'?))) SEP+;  DIVIDE_KW: L_PAREN ('divide'|'/'|'div') SEP+;  DO_WHILE_KW: L_PAREN ('do'US'while') SEP+;  ENABLE_TEXT_EFFECT_KW: L_PAREN 'text'US'effect' SEP+; diff --git a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 index 14accd4..7bde449 100644 --- a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 +++ b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 @@ -2446,6 +2446,26 @@ returns [Computation result]        }     } +   | EVAL_KW value_reference WS* R_PAREN +   { +      final Origin origin; + +      origin = +         CONTEXT.get_origin_at +         ( +            ($EVAL_KW.getLine()), +            ($EVAL_KW.getCharPositionInLine()) +         ); + +      $result = +         LambdaEvaluation.build +         ( +            origin, +            ($value_reference.result), +            new ArrayList() +         ); +   } +     | EVAL_KW value_reference WS+ value_list WS* R_PAREN     {        final Origin origin; | 


