Interface Evaluator

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.lang.Object evaluate​(java.lang.String expression)
      Evaluates the given infix expression, returning the result.
      java.lang.Object evaluate​(java.util.LinkedList<java.lang.Object> queue)
      Evaluates the given postfix token queue, returning the result.
      java.lang.Object evaluate​(SyntaxTree syntaxTree)
      Evaluates the given syntax tree, returning the result.
      java.lang.Object get​(Variable v)
      Gets the value of the given variable.
      ExpressionParser getParser()
      Gets the parser used when evaluating expressions.
      boolean isStrict()
      Gets whether the evaluator is operating in strict mode.
      void set​(Variable v, java.lang.Object value)
      Sets the value of the given variable.
      void setAll​(java.util.Map<? extends java.lang.String,​? extends java.lang.Object> map)
      Assigns variables en masse.
      void setStrict​(boolean strict)
      Sets whether the evaluator is operating in strict mode.
      java.lang.Object value​(java.lang.Object token)
      Gets the value of the given token.
    • Method Detail

      • getParser

        ExpressionParser getParser()
        Gets the parser used when evaluating expressions.
      • isStrict

        boolean isStrict()
        Gets whether the evaluator is operating in strict mode.
        See Also:
        setStrict(boolean)
      • setStrict

        void setStrict​(boolean strict)
        Sets whether the evaluator is operating in strict mode. Evaluators operate in strict mode by default.

        When evaluating strictly, usage of an unassigned variable token in a place where its value is needed will generate an IllegalArgumentException with an "Unknown variable" message; in non-strict mode, such a variable will instead be resolved to an object of type Unresolved with the same name as the original variable.

        In cases such as assignment, this may be sufficient to complete the evaluation; for example, the expression foo=bar will complete successfully in non-strict mode, with the variable foo containing an object of type Unresolved and token value "bar". But in cases where the unresolved value is needed as an input for additional operations, the evaluation may still ultimately fail of the operation in question is not defined for unresolved values. For example, the DefaultEvaluator will fail with an "Unsupported binary operator" exception when given the expression foo+bar, since foo and bar are unresolved variables, and the + operator cannot handle such objects.

      • evaluate

        java.lang.Object evaluate​(java.lang.String expression)
        Evaluates the given infix expression, returning the result.
      • evaluate

        java.lang.Object evaluate​(java.util.LinkedList<java.lang.Object> queue)
        Evaluates the given postfix token queue, returning the result.
      • evaluate

        java.lang.Object evaluate​(SyntaxTree syntaxTree)
        Evaluates the given syntax tree, returning the result.
      • value

        java.lang.Object value​(java.lang.Object token)
        Gets the value of the given token. For variables, returns the value of the variable, throwing an exception if the variable is not set. For literals, returns the token itself.
      • get

        java.lang.Object get​(Variable v)
        Gets the value of the given variable.
      • set

        void set​(Variable v,
                 java.lang.Object value)
        Sets the value of the given variable.
      • setAll

        void setAll​(java.util.Map<? extends java.lang.String,​? extends java.lang.Object> map)
        Assigns variables en masse.