All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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