gnu.expr
Interface TypeValue

All Known Implementing Classes:
AttributeType, ElementType, LangPrimType, NodeType, OccurrenceType

public interface TypeValue

A Type or a Type expression. Can be used for higher-level types that do not map directly to a Type.


Method Summary
 void emitIsInstance(Variable incoming, Compilation comp, Target target)
          Emit code for incoming instanceof this_type.
 void emitTestIf(Variable incoming, Declaration decl, Compilation comp)
          Emit code for if (incoming instanceof this_type) decl = incoming ....
 Type getImplementationType()
          The lower-level Type used to represent instances of this type.
 

Method Detail

getImplementationType

Type getImplementationType()
The lower-level Type used to represent instances of this type.


emitTestIf

void emitTestIf(Variable incoming,
                Declaration decl,
                Compilation comp)
Emit code for if (incoming instanceof this_type) decl = incoming .... This method is designed for typeswitch applications, where this call is the first part of a conditional, so it must be followed by calls to emitElse and emitFi.

Parameters:
incoming - Contains the value we are testing to see if it has the type of this. If null, use top-of-stack.
decl - If non-null, assign value after coercion to Declaration.
comp - The compilation state.

emitIsInstance

void emitIsInstance(Variable incoming,
                    Compilation comp,
                    Target target)
Emit code for incoming instanceof this_type. The implementation can use InstanceOf .emitIsInstance which is a conveniece method that calls emitTestIf.

Parameters:
incoming - Contains the value we are testing to see if it has the the type of 'this'. If null, use top-of-stack.
comp - The compilation state.
target - Where to leave the result.