| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src')
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; |


