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.value.BiValue;
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.state.RedirectStateTree;
import dev.peerat.parser.state.StateTree;
@ -117,11 +118,12 @@ public class ValueTree extends SyntaxTree<JavaElement> {
return null;
});
left_value.equals("?")
.redirect(unary_value)
.redirect(value, (global, local) -> global.set("success", local.get()))
.equals(":")
.redirect(unary_value)
.redirect(value, (global, local) -> global.set("fail", local.get()))
.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());
return null;
});

View file

@ -44,4 +44,9 @@ public class TriValue extends Value{
}
@Override
public String toString(){
return "[TriValue] "+check+" ? "+success+" : "+fail;
}
}