package jscl.text;
import jscl.math.Generic;
import jscl.math.function.Function;
import jscl.math.function.Root;
import jscl.text.msg.Messages;
import javax.annotation.Nonnull;
public class RootParser implements Parser<Function> {
public static final Parser<Function> parser = new RootParser();
private RootParser() {
}
public Function parse(@Nonnull Parameters p, Generic previousSumElement) throws ParseException {
int pos0 = p.position.intValue();
final String name = Identifier.parser.parse(p, previousSumElement);
if (name.compareTo("root") != 0) {
ParserUtils.throwParseException(p, pos0, Messages.msg_11, "root");
}
final Generic subscript = ParserUtils.parseWithRollback(Subscript.parser, pos0, previousSumElement, p);
final Generic parameters[] = ParserUtils.parseWithRollback(ParameterListParser.parser1, pos0, previousSumElement, p);
return new Root(parameters, subscript);
}
}