unit test for TriValue

This commit is contained in:
jeffcheasey88 2025-02-11 16:21:31 +01:00
parent 95d2ecf89c
commit b107f708ce
2 changed files with 10 additions and 3 deletions

View file

@ -8,6 +8,7 @@ import dev.peerat.parser.TokenType;
import dev.peerat.parser.java.JavaElement; import dev.peerat.parser.java.JavaElement;
import dev.peerat.parser.java.value.BiValue; import dev.peerat.parser.java.value.BiValue;
import dev.peerat.parser.java.value.StaticValue; import dev.peerat.parser.java.value.StaticValue;
import dev.peerat.parser.java.value.TriValue;
import dev.peerat.parser.java.value.Value.ValueContainer; import dev.peerat.parser.java.value.Value.ValueContainer;
import dev.peerat.parser.state.RedirectStateTree; import dev.peerat.parser.state.RedirectStateTree;
import dev.peerat.parser.state.StateTree; import dev.peerat.parser.state.StateTree;
@ -117,11 +118,12 @@ public class ValueTree extends SyntaxTree<JavaElement> {
return null; return null;
}); });
left_value.equals("?") left_value.equals("?")
.redirect(unary_value) .redirect(value, (global, local) -> global.set("success", local.get()))
.equals(":") .equals(":")
.redirect(unary_value) .redirect(value, (global, local) -> global.set("fail", local.get()))
.end((parent, bag) -> { .end((parent, bag) -> {
bag.set(new StaticValue(new Token(0,0,"",TokenType.NAME))); System.out.println("tri value "+bag);
bag.set(new TriValue(bag.get(), bag.get("success"), bag.get("fail")));
if(parent instanceof ValueContainer) ((ValueContainer)parent).addValue(bag.get()); if(parent instanceof ValueContainer) ((ValueContainer)parent).addValue(bag.get());
return null; return null;
}); });

View file

@ -43,5 +43,10 @@ public class TriValue extends Value{
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list) { public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list) {
} }
@Override
public String toString(){
return "[TriValue] "+check+" ? "+success+" : "+fail;
}
} }