expandTokens method
Fully expands tokens (for \edef, \xdef).
Implementation
List<Token> expandTokens(List<Token> tokens) {
final savedFloor = _floor;
final savedHitEnd = hitEndOfInput;
final base = _stack.length;
_floor = base;
pushAll(tokens);
final out = <Token>[];
try {
while (_stack.length > base) {
final t = peekRaw();
if (_expandable(t)) {
_expandOnce();
continue;
}
if (_stack.length <= base) break;
out.add(_stack.removeLast());
}
} finally {
_floor = savedFloor;
hitEndOfInput = savedHitEnd;
}
return out;
}