gnu.expr
Class ModuleExp

java.lang.Object
  |
  +--gnu.expr.Expression
        |
        +--gnu.expr.ScopeExp
              |
              +--gnu.expr.LambdaExp
                    |
                    +--gnu.expr.ModuleExp

public class ModuleExp
extends LambdaExp

Class used to implement Scheme top-level environments.


Field Summary
 boolean mustCompile
          True if the body is too complex to evaluate,and we must compile it.
 
Fields inherited from class gnu.expr.LambdaExp
body, closureEnvField, defaultArgs, dumpZipCounter, dumpZipPrefix, fileFunctionName, firstChild, flags, keywords, max_args, min_args, name, nextSibling, staticLinkField
 
Fields inherited from class gnu.expr.ScopeExp
outer
 
Constructor Summary
ModuleExp()
           
 
Method Summary
 void compileToArchive(java.lang.String fname)
           
 void compileToFiles(java.lang.String topname, java.lang.String directory, java.lang.String prefix)
           
 java.lang.Object evalModule(Environment env)
           
 void print(java.io.PrintWriter ps)
           
 
Methods inherited from class gnu.expr.LambdaExp
allocChildClasses, allocFrame, compile, compile, compileAlloc, compileEnd, compileSetField, declareClosureEnv, declareThis, eval, evalToClass, getCaller, getCanCall, getCanRead, getCompiledClassType, getFlags, getImportsLexVars, getInlineOnly, getJavaName, getMainMethod, getMethod, getName, getNeedsClosureEnv, getNeedsStaticLink, getType, incomingArgs, isClassGenerated, isClassMethod, isHandlingTailCalls, isModuleBody, loadHeapFrame, outerLambda, outerLambdaNotInline, restArgType, setCanCall, setCanRead, setClassMethod, setImportsLexVars, setImportsLexVars, setInlineOnly, setName, setNeedsStaticLink, setNeedsStaticLink, toString, variable_args
 
Methods inherited from class gnu.expr.ScopeExp
add, addDeclaration, addDeclaration, addDeclaration, countDecls, currentLambda, firstDecl, lookup
 
Methods inherited from class gnu.expr.Expression
compile, compileNotePosition, compileWithPosition, getColumn, getFile, getLine, setFile, setLine, setLine
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

mustCompile

public boolean mustCompile
True if the body is too complex to evaluate,and we must compile it. This is because it contains a construct we know how to compile, but not evaluate, and it it outside a lambda (which we always compile). This can be a let scope, or primitive procedure.
Constructor Detail

ModuleExp

public ModuleExp()
Method Detail

evalModule

public final java.lang.Object evalModule(Environment env)

compileToFiles

public void compileToFiles(java.lang.String topname,
                           java.lang.String directory,
                           java.lang.String prefix)
                    throws java.io.IOException

compileToArchive

public void compileToArchive(java.lang.String fname)
                      throws java.io.IOException

print

public void print(java.io.PrintWriter ps)
Overrides:
print in class LambdaExp