@Override
public LexerToken getNextToken() throws IOException {
Stream lexer = getCurrentLexer().get(0);
Syntax s = lexer.scan();
while (s.kind() != Syntax.Kind.EOF) {
if (s.kind() == Syntax.Kind.CONDITIONAL) {
Syntax.Conditional c = s.toConditional();
if (c.tag() == Syntax.ConditionalTag.START) {
stack.push(stack.peek().and(translate(c.presenceCondition())));