
jscl.text.ExpressionParser Maven / Gradle / Ivy
package jscl.text;
import jscl.math.Generic;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class ExpressionParser implements Parser {
public static final Parser parser = new ExpressionParser();
private ExpressionParser() {
}
public Generic parse(@NotNull Parameters p, @Nullable Generic previousSumElement) throws ParseException {
boolean sign = MinusParser.parser.parse(p, previousSumElement).isSign();
Generic result = TermParser.parser.parse(p, previousSumElement);
if (sign) {
result = result.negate();
}
while (true) {
try {
result = result.add(PlusOrMinusTerm.parser.parse(p, result));
} catch (ParseException e) {
break;
}
}
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy