Class InterpretedExpressionCompiler


  • public class InterpretedExpressionCompiler
    extends ToIteratorCompiler
    Bytecode generator for instructions that calls back to the interpreter. This generates code which simply invokes the interpreter for this instruction, including interpreting its subexpressions and patterns
    • Constructor Detail

      • InterpretedExpressionCompiler

        public InterpretedExpressionCompiler()
    • Method Detail

      • compileToItem

        public void compileToItem​(CompilerService compiler,
                                  Expression expression)
                           throws CannotCompileException
        Generate bytecode to evaluate the expression as an Item Precondition: none. Postcondition: at execution time, the stack contains either an item (the result of the expression), or null (representing an empty sequence).
        Overrides:
        compileToItem in class ToIteratorCompiler
        Parameters:
        compiler - the compiler service
        expression - the expression to be compiled
        Throws:
        CannotCompileException - if the expression cannot be compiled to bytecode
      • compileToIterator

        public void compileToIterator​(CompilerService compiler,
                                      Expression expression)
                               throws CannotCompileException
        Generate bytecode to evaluate the expression as an Iterator Precondition: none. Postcondition: at execution time, the stack contains either an iterator (the result of the expression)
        Specified by:
        compileToIterator in class ExpressionCompiler
        Parameters:
        compiler - the compiler service
        expression - the expression to be compiled
        Throws:
        CannotCompileException - if the expression cannot be compiled to bytecode
      • compileToPush

        public void compileToPush​(CompilerService compiler,
                                  Expression expression)
                           throws CannotCompileException
        Generate bytecode to evaluate the expression Precondition: none. Postcondition: at execution time, the stack contains either an iterator (the result of the expression)
        Overrides:
        compileToPush in class ToIteratorCompiler
        Parameters:
        compiler - the compiler service
        expression - the expression to be compiled
        Throws:
        CannotCompileException - if the expression cannot be compiled to bytecode