gnu.expr
Class ModuleBody

java.lang.Object
  |
  +--gnu.mapping.Procedure
        |
        +--gnu.mapping.Procedure0
              |
              +--gnu.expr.ModuleBody

public abstract class ModuleBody
extends Procedure0

Abstract class for the dummy top-level function of a module. This provides the functionality of gnu.mapping.ApplyMethodContainer, but it is class rather than an interface (thus ModuleMethod can use faster virtual method calls instead of slower interface calls).


Fields inherited from class gnu.mapping.Procedure
noArgs, sym_name
 
Constructor Summary
ModuleBody()
           
 
Method Summary
 java.lang.Object apply0()
           
 java.lang.Object apply0(ModuleMethod method)
          A subclass will typically override this like: switch (method.selector) { case 3: return function3(); case 5: return function5(); default: super.apply0(method); }
 java.lang.Object apply1(ModuleMethod method, java.lang.Object arg1)
           
 java.lang.Object apply2(ModuleMethod method, java.lang.Object arg1, java.lang.Object arg2)
           
 java.lang.Object apply3(ModuleMethod method, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
           
 java.lang.Object apply4(ModuleMethod method, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4)
           
 java.lang.Object applyN(ModuleMethod method, java.lang.Object[] args)
           
abstract  java.lang.Object run()
           
 void runAsMain(java.lang.String[] args)
          This is invoked by main when ModuleBody is compiled with --main.
 
Methods inherited from class gnu.mapping.Procedure0
apply1, apply2, apply3, apply4, applyN, numArgs
 
Methods inherited from class gnu.mapping.Procedure
apply, checkArgCount, getName, getSetter, maxArgs, minArgs, name, print, set0, set1, setN, setName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ModuleBody

public ModuleBody()
Method Detail

apply0

public java.lang.Object apply0()
Overrides:
apply0 in class Procedure0

run

public abstract java.lang.Object run()

runAsMain

public final void runAsMain(java.lang.String[] args)
This is invoked by main when ModuleBody is compiled with --main.

apply0

public java.lang.Object apply0(ModuleMethod method)
A subclass will typically override this like: switch (method.selector) { case 3: return function3(); case 5: return function5(); default: super.apply0(method); }

apply1

public java.lang.Object apply1(ModuleMethod method,
                               java.lang.Object arg1)

apply2

public java.lang.Object apply2(ModuleMethod method,
                               java.lang.Object arg1,
                               java.lang.Object arg2)

apply3

public java.lang.Object apply3(ModuleMethod method,
                               java.lang.Object arg1,
                               java.lang.Object arg2,
                               java.lang.Object arg3)

apply4

public java.lang.Object apply4(ModuleMethod method,
                               java.lang.Object arg1,
                               java.lang.Object arg2,
                               java.lang.Object arg3,
                               java.lang.Object arg4)

applyN

public java.lang.Object applyN(ModuleMethod method,
                               java.lang.Object[] args)