Interface ExpressionVisitor<R>

Type Parameters:
R - The visit result type
All Known Implementing Classes:
ExpressionInterpreter, IsConstantExpression

public interface ExpressionVisitor<R>
An Expression visitor. Provides a way to add functionalities to the expression interface and all of its implementations.

See the following example on visiting an expression:


      Expression expr = ...;
      String str = expr.visit(new ToStringVisitor());
 

Please note that users MUST use Expression.visit(ExpressionVisitor) and NOT ExpressionVisitor's visit(Expression), because it will not work as intended.

Since:
3.0.0
  • Method Details

    • visit

      R visit(@NotNull @NotNull Expression expression)
      Evaluate for the given unknown expression.
      Parameters:
      expression - The expression.
      Returns:
      The result.
      Since:
      3.0.0
    • visitArrayAccess

      default R visitArrayAccess(@NotNull @NotNull ArrayAccessExpression expression)
      Evaluate for array access expression.
      Parameters:
      expression - The expression.
      Returns:
      The result.
      Since:
      3.0.0
    • visitDouble

      default R visitDouble(@NotNull @NotNull DoubleExpression expression)
      Evaluate for double expression.
      Parameters:
      expression - The expression.
      Returns:
      The result.
      Since:
      3.0.0
    • visitString

      default R visitString(@NotNull @NotNull StringExpression expression)
      Evaluate for string expression.
      Parameters:
      expression - The expression.
      Returns:
      The result.
      Since:
      3.0.0
    • visitIdentifier

      default R visitIdentifier(@NotNull @NotNull IdentifierExpression expression)
      Evaluate for identifier expression.
      Parameters:
      expression - The expression.
      Returns:
      The result.
      Since:
      3.0.0
    • visitTernaryConditional

      default R visitTernaryConditional(@NotNull @NotNull TernaryConditionalExpression expression)
      Evaluate for ternary conditional expression.
      Parameters:
      expression - The expression.
      Returns:
      The result.
      Since:
      3.0.0
    • visitUnary

      default R visitUnary(@NotNull @NotNull UnaryExpression expression)
      Evaluate for unary expression.
      Parameters:
      expression - The expression.
      Returns:
      The result.
      Since:
      3.0.0
    • visitExecutionScope

      default R visitExecutionScope(@NotNull @NotNull ExecutionScopeExpression expression)
      Evaluate for execution scope expression.
      Parameters:
      expression - The expression.
      Returns:
      The result.
      Since:
      3.0.0
    • visitBinary

      default R visitBinary(@NotNull @NotNull BinaryExpression expression)
      Evaluate for binary expression.
      Parameters:
      expression - The expression.
      Returns:
      The result.
      Since:
      3.0.0
    • visitAccess

      default R visitAccess(@NotNull @NotNull AccessExpression expression)
      Evaluate for access expression.
      Parameters:
      expression - The expression.
      Returns:
      The result.
      Since:
      3.0.0
    • visitCall

      default R visitCall(@NotNull @NotNull CallExpression expression)
      Evaluate for call expression.
      Parameters:
      expression - The expression.
      Returns:
      The result.
      Since:
      3.0.0
    • visitStatement

      default R visitStatement(@NotNull @NotNull StatementExpression expression)
      Evaluate for statement expression.
      Parameters:
      expression - The expression.
      Returns:
      The result.
      Since:
      3.0.0