Class CompilerTools

java.lang.Object
org.mvel2.util.CompilerTools

public class CompilerTools extends Object
  • Constructor Details

    • CompilerTools

      public CompilerTools()
  • Method Details

    • finalizePayload

      public static ASTLinkedList finalizePayload(ASTLinkedList astLinkedList, boolean secondPassOptimization, ParserContext pCtx)
      Finalize the payload, by reducing any stack-based-operations to dedicated nodes where possible.
      Parameters:
      astLinkedList - - AST to be optimized.
      secondPassOptimization - - perform a second pass optimization to optimize boolean expressions.
      pCtx - - The parser context
      Returns:
      optimized AST
    • boOptimize

      private static BinaryOperation boOptimize(int op, ASTNode tk, ASTNode tk2, ParserContext pCtx)
    • isReductionOpportunity

      private static boolean isReductionOpportunity(ASTNode oper, ASTNode node)
    • reducacbleOperator

      private static boolean reducacbleOperator(int oper)
    • optimizeOperator

      private static void optimizeOperator(int operator, ASTNode tk, ASTNode tkOp, ASTLinkedList astLinkedList, ASTLinkedList optimizedAst, ParserContext pCtx)
    • isIntOptimizationviolation

      private static boolean isIntOptimizationviolation(BooleanNode bn, ASTNode bn2)
    • getReturnType

      public static Class getReturnType(ASTIterator input, boolean strongTyping)
    • extractAllDeclaredFunctions

      public static Map<String,Function> extractAllDeclaredFunctions(CompiledExpression compile)
      Returns an ordered Map of all functions declared within an compiled script.
      Parameters:
      compile - compile
      Returns:
      - ordered Map
    • expectType

      public static void expectType(ParserContext pCtx, Accessor expression, Class type, boolean compileMode)
    • expectType

      public static void expectType(ParserContext pCtx, ASTNode node, Class type, boolean compileMode)
    • getReturnTypeFromOp

      public static Class getReturnTypeFromOp(int operation, Class left, Class right)
    • extractAccessor

      public static Accessor extractAccessor(ASTNode n)
    • getInjectedImports

      public static Map<String,Object> getInjectedImports(VariableResolverFactory factory)
    • signNumber

      public static Number signNumber(Object number)