+ if (left) { left = false; return new CharToken(-3); }
+ if (right) { right = false; return new CharToken(-4); }
+
+ if (pos >= cur.size()) {
+ pos = cur.iip+1;
+ cur = cur.parent;
+ return new CharToken(-4);
+ }
+
+ Object o = cur.child(pos++);
+ if (o instanceof String) return new StringToken((String)o);
+ if (o.isLiteral()) return ((Block.Literal)o).text();
+ cur = (Block)b;
+ pos = 0;
+ return new CharToken(-3);