package dev.peerat.parser.state; import java.util.function.Function; import dev.peerat.parser.TokenValidator; public class BinaryStateTree extends StateTree{ private Function condition; private StateTree success; private StateTree fail; public BinaryStateTree(Function checker){ super(); this.condition = checker; } @Override BuilderStateTree internalSeed(TokenValidator validator, E element){ return ((this.condition.apply(validator)) ? success : fail).internalSeed(validator, element); } public StateTree success(StateTree state){ success = state; return state; } public StateTree fail(StateTree state){ fail = state; return state; } }