java.lang.Object
gnu.mapping.Procedure
gnu.mapping.Procedure2
nice.lang.inline.ReferenceOp
- All Implemented Interfaces:
- gnu.expr.Branchable, gnu.expr.Inlineable, bossa.syntax.Macro, gnu.mapping.Named
- public class ReferenceOp
- extends gnu.mapping.Procedure2
- implements gnu.expr.Branchable, bossa.syntax.Macro
Inlining of native reference operators.
| Fields inherited from class gnu.mapping.Procedure |
|
| Methods inherited from class gnu.mapping.Procedure |
apply, checkArgCount, getName, getProperty, getSetter, maxArgs, minArgs, name, removeProperty, set0, set1, setN, setName, setProperty, setProperty, toString |
Eq
private static final int Eq
- See Also:
- Constant Field Values
Ne
private static final int Ne
- See Also:
- Constant Field Values
kind
private final int kind
retType
private static final gnu.bytecode.Type retType
ReferenceOp
private ReferenceOp(int kind)
create
public static ReferenceOp create(java.lang.String param)
compile
public void compile(gnu.expr.ApplyExp exp,
gnu.expr.Compilation comp,
gnu.expr.Target target)
- Specified by:
compile in interface gnu.expr.Inlineable
compileJump
public void compileJump(gnu.expr.Compilation comp,
gnu.expr.Expression[] args,
gnu.bytecode.Label to)
- Description copied from interface:
gnu.expr.Branchable
- Jump to label if the expression yields true.
- Specified by:
compileJump in interface gnu.expr.Branchable
compileJumpNot
public void compileJumpNot(gnu.expr.Compilation comp,
gnu.expr.Expression[] args,
gnu.bytecode.Label to)
- Description copied from interface:
gnu.expr.Branchable
- Jump to label if the expression yields false.
- Specified by:
compileJumpNot in interface gnu.expr.Branchable
getReturnType
public gnu.bytecode.Type getReturnType(gnu.expr.Expression[] args)
- Specified by:
getReturnType in interface gnu.expr.Inlineable
checkSpecialRequirements
public void checkSpecialRequirements(bossa.syntax.Expression[] arguments)
- Description copied from interface:
bossa.syntax.Macro
- For each call site, this method is called with the actual arguments
of the macro. This can be used to check special requirements on the
arguments that could not be expressed in the type of the macro.
For instance, it might be necessary to check that a certain argument
is assignable if it is modified by the macro.
- Specified by:
checkSpecialRequirements in interface bossa.syntax.Macro
apply2
public java.lang.Object apply2(java.lang.Object arg1,
java.lang.Object arg2)