Abstract superclass for expression compilers that handle boolean expressions, that is,
expressions that return a boolean result. Compilers for such expressions must implement
the compileToBoolean method; other methods such as compileToItem and compileToIterator
invoke the compileToBoolean method.
Generate bytecode to evaluate the expression as an Item
Postcondition: at execution time, the stack contains either an item (the result of the expression), or null
(representing an empty sequence).
Generate bytecode to evaluate the expression in push mode
Postcondition: at execution time, the stack is unchanged, and the value of the expression has been
written to the current receiver