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

javax0.jamal.prog.analyzer.Expression4 Maven / Gradle / Ivy

The newest version!
package javax0.jamal.prog.analyzer;

import javax0.jamal.api.BadSyntax;
import javax0.jamal.prog.commands.Operation;

/**
 * An expression3 is
 * 
 * expression4 '*' expression3
 * expression4 '/' expression3
 * expression4 '%' expression3
 * expression4
 * 
*/ public class Expression4 { public static javax0.jamal.prog.commands.Expression analyze(final Lex.List lexes) throws BadSyntax { if (lexes.isEmpty()) { throw new BadSyntax("Expression is empty"); } var left = Expression5.analyze(lexes); while( lexes.is(".")){ lexes.next(); // consume the '.' left = MethodCall.analyze(left, lexes); } while (lexes.is("*") || lexes.is("/") || lexes.is("%")) { final var op = lexes.next().text; final var right = Expression5.analyze(lexes); left = new Operation(op, left, right); } return left; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy