From f61beaefa0af8ef4ed6771ad13ecf4d186cfe51c Mon Sep 17 00:00:00 2001 From: jeffcheasey88 <66554203+jeffcheasey88@users.noreply.github.com> Date: Tue, 11 Feb 2025 18:28:03 +0100 Subject: [PATCH] unit test for ModifierValue --- src/dev/peerat/parser/java/tree/ValueTree.java | 12 ++++++++++-- src/dev/peerat/parser/java/value/ModifierValue.java | 5 +++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/dev/peerat/parser/java/tree/ValueTree.java b/src/dev/peerat/parser/java/tree/ValueTree.java index 0e4e096..338c0db 100644 --- a/src/dev/peerat/parser/java/tree/ValueTree.java +++ b/src/dev/peerat/parser/java/tree/ValueTree.java @@ -3,10 +3,10 @@ package dev.peerat.parser.java.tree; import java.util.function.BiFunction; import dev.peerat.parser.Bag; -import dev.peerat.parser.Token; import dev.peerat.parser.TokenType; import dev.peerat.parser.java.JavaElement; import dev.peerat.parser.java.value.BiValue; +import dev.peerat.parser.java.value.ModifierValue; import dev.peerat.parser.java.value.StaticValue; import dev.peerat.parser.java.value.TriValue; import dev.peerat.parser.java.value.Value.ValueContainer; @@ -59,6 +59,14 @@ public class ValueTree extends SyntaxTree { return null; }; + BiFunction modifierValueBuilder = (parent, bag) -> { + System.out.println("modifierValueBuilder "+bag); + ModifierValue result = new ModifierValue(bag.get("modifier"), bag.get()); + bag.set(result); + if(parent instanceof ValueContainer) ((ValueContainer)parent).addValue(result); + return null; + }; + StateTree redirectRight = new RedirectStateTree<>(value, (global, local) -> { System.out.println("redirectRight g="+global+" ,l="+local); global.set("right", local.get()); @@ -110,7 +118,7 @@ public class ValueTree extends SyntaxTree { value_operation_bit_or.then(redirectRight).end(operationBuilder); value_operation_bit_or.equals("|","action","||").then(redirectRight).end(operationBuilder); - value.equals("!").redirect(value).end(); + value.equals("!","modifier").redirect(value).end(modifierValueBuilder); StateTree left_value = value.redirect(unary_value); left_value.end((parent, bag) -> { diff --git a/src/dev/peerat/parser/java/value/ModifierValue.java b/src/dev/peerat/parser/java/value/ModifierValue.java index ff4f3f7..fabcd17 100644 --- a/src/dev/peerat/parser/java/value/ModifierValue.java +++ b/src/dev/peerat/parser/java/value/ModifierValue.java @@ -38,4 +38,9 @@ public class ModifierValue extends Value{ public void findAll(Function finder, List list) { } + + @Override + public String toString(){ + return "[ModifierValue] "+modifier+value; + } }