parseScriptGroup static method
Parses a script group {_a^b} and returns (sub, sup).
Implementation
static (LatexNode?, LatexNode?) parseScriptGroup(
LatexParserContext ctx,
LatexTokenStream stream,
) {
if (stream.peek() is! LeftBraceToken) {
return (null, null);
}
stream.advance(); // consume '{'
LatexNode? sub;
LatexNode? sup;
while (!stream.isEOF() && stream.peek() is! RightBraceToken) {
final token = stream.peek();
if (token is SubscriptToken) {
stream.advance();
sub = ctx.parseFactor();
} else if (token is SuperscriptToken) {
stream.advance();
sup = ctx.parseFactor();
} else if (token is WhitespaceToken) {
stream.advance();
} else {
stream.advance();
}
}
if (!stream.isEOF()) {
stream.advance(); // consume '}'
}
return (sub, sup);
}