| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-08-15 00:59:52 +0200 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-08-15 00:59:52 +0200 |
| commit | bfc060584e91398831dee85455e3df0fbbddbf57 (patch) | |
| tree | 025a7de13d2cd69f93c108f78b003a2efe0e04a1 /src/core | |
| parent | e6ae3c38007df8cd139b34f88c1eaeb07f647163 (diff) | |
Finding some issues, as expected.
Diffstat (limited to 'src/core')
5 files changed, 17 insertions, 13 deletions
diff --git a/src/core/src/tonkadur/Main.java b/src/core/src/tonkadur/Main.java index ea02801..62879d2 100644 --- a/src/core/src/tonkadur/Main.java +++ b/src/core/src/tonkadur/Main.java @@ -59,6 +59,8 @@ public class Main tp.post_fate_parsing(fate_world); } + fate_world.assert_sanity(); + wyrd_world = new tonkadur.wyrd.v1.lang.World(); for (final TonkadurPlugin tp: plugins) diff --git a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 index fffe6a3..81b63e2 100644 --- a/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 +++ b/src/core/src/tonkadur/fate/v1/parser/FateParser.g4 @@ -100,8 +100,9 @@ returns [List<Instruction> result] first_level_fate_instr: DEFINE_SEQUENCE_KW new_reference_name + WS* ( - L_PAREN WS+ variable_list WS* R_PAREN + L_PAREN WS* variable_list WS* R_PAREN { final Map<String, Variable> variable_map; @@ -817,6 +818,8 @@ returns [Instruction result] ($new_reference_name.result), ($general_fate_sequence.result) ); + + variable_map.remove(($new_reference_name.result)); } | EVENT_KW WORD WS+ value_list WS* R_PAREN 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 961fd10..27f382d 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 @@ -1677,6 +1677,8 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor parameter_ccs = new ArrayList<ComputationCompiler>(); parameters = new ArrayList<Computation>(); + compiler.assembler().add_fixed_name_label(n.get_sequence_name()); + for ( final tonkadur.fate.v1.lang.meta.Computation param: n.get_parameters() @@ -1737,6 +1739,8 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor parameter_ccs = new ArrayList<ComputationCompiler>(); parameters = new ArrayList<Computation>(); + compiler.assembler().add_fixed_name_label(n.get_sequence_name()); + for ( final tonkadur.fate.v1.lang.meta.Computation param: n.get_parameters() @@ -1763,7 +1767,10 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor ( compiler.registers().get_jump_to_context_instructions ( - compiler.assembler().get_label_constant(n.get_sequence_name()) + compiler.assembler().get_label_constant + ( + n.get_sequence_name() + ) ) ); diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/util/registers/RegisterManager.java b/src/core/src/tonkadur/wyrd/v1/compiler/util/registers/RegisterManager.java index 155f6d5..5607450 100644 --- a/src/core/src/tonkadur/wyrd/v1/compiler/util/registers/RegisterManager.java +++ b/src/core/src/tonkadur/wyrd/v1/compiler/util/registers/RegisterManager.java @@ -18,6 +18,7 @@ import tonkadur.wyrd.v1.lang.meta.Instruction; import tonkadur.wyrd.v1.lang.computation.Address; import tonkadur.wyrd.v1.lang.computation.RelativeAddress; import tonkadur.wyrd.v1.lang.computation.Constant; +import tonkadur.wyrd.v1.lang.computation.Cast; import tonkadur.wyrd.v1.lang.computation.ValueOf; import tonkadur.wyrd.v1.lang.computation.Size; @@ -151,7 +152,7 @@ public class RegisterManager new RelativeAddress ( pc_stack.get_address(), - new Size(pc_stack.get_address()), + new Cast(new Size(pc_stack.get_address()), Type.STRING), Type.INT ), leave_to @@ -200,7 +201,7 @@ public class RegisterManager new RelativeAddress ( pc_stack.get_address(), - new Size(pc_stack.get_address()), + new Cast(new Size(pc_stack.get_address()), Type.STRING), Type.INT ); diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/util/registers/StackableRegisterContext.java b/src/core/src/tonkadur/wyrd/v1/compiler/util/registers/StackableRegisterContext.java index 3327e2c..973806a 100644 --- a/src/core/src/tonkadur/wyrd/v1/compiler/util/registers/StackableRegisterContext.java +++ b/src/core/src/tonkadur/wyrd/v1/compiler/util/registers/StackableRegisterContext.java @@ -156,15 +156,6 @@ class StackableRegisterContext extends RegisterContext ) ); - result.add - ( - new SetValue - ( - context_stack_level.get_address(), - Operation.minus(context_stack_level.get_value(), Constant.ONE) - ) - ); - return result; } |


