From 7e38e4512b407500910071120d2ad23a9ec395cf Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Mon, 20 Jul 2020 09:24:53 +0200 Subject: Adds simplified variable declaration. --- data/examples/the_thief/include/characters.fate | 4 +-- src/core/src/tonkadur/fate/v1/parser/FateParser.g4 | 30 ++++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/data/examples/the_thief/include/characters.fate b/data/examples/the_thief/include/characters.fate index 650f253..0bdd797 100644 --- a/data/examples/the_thief/include/characters.fate +++ b/data/examples/the_thief/include/characters.fate @@ -3,9 +3,9 @@ (require type/character.fate) (declare_variable local character oscar) -(declare_variable local character carla) +(declare_variable character carla) (declare_variable local character simon) -(declare_variable local character julie) +(declare_variable character julie) (declare_variable local character statue) (require include/locations.fate) diff --git a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 index 3ec977a..94920f3 100644 --- a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 +++ b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 @@ -133,6 +133,36 @@ first_level_fate_instr: WORLD.sequences().add(new_sequence); } + | DECLARE_VARIABLE_KW + WS+ + type + WS+ + name=new_reference_name + WS* + R_PAREN + { + final Origin start_origin, type_origin; + final Variable new_variable; + + start_origin = + CONTEXT.get_origin_at + ( + ($DECLARE_VARIABLE_KW.getLine()), + ($DECLARE_VARIABLE_KW.getCharPositionInLine()) + ); + + new_variable = + new Variable + ( + start_origin, + VariableScope.LOCAL, + ($type.result), + ($name.result) + ); + + WORLD.variables().add(new_variable); + } + | DECLARE_VARIABLE_KW WS+ scope=WORD -- cgit v1.2.3-70-g09d2