gnu.expr |
The gnu.expr Package
Supports Expression ,
and various related classes need to compile programming languages.
The exact set of classes in this package is still somewhat in flux.
License
See the file COPYING.
Author
Per Bothner
<per@bothner.com>
Bugs and patches
Send them to per@bothner.com,
or to the Kawa mailing list.
|
Java Source File Name | Type | Comment |
AccessExp.java | Class | A common super-type for ReferenceExpa and SetExp.
Contains shared information about the variable that is accessed. |
ApplyExp.java | Class | This class is used to represent "combination" or "application". |
BeginExp.java | Class | This class represents a sequence of Expressions. |
BindingInitializer.java | Class | |
BlockExp.java | Class | Class used to implement a block that can be exited. |
BuiltinEnvironment.java | Class | An Environment containing the default bindings for the current Language.
All lookup operatiosn are indirected to the
current Language . |
CanInline.java | Interface | Inline an application, at the Expression level. |
CatchClause.java | Class | A "catch" clause of a "try-catch" form. |
ChainLambdas.java | Class | Sets up the firstChild/nextSibling links of each LambdaExp. |
CheckedTarget.java | Class | Same as StackTarget, but catch ClassCastException.
Generate code so that if coercion fails, catch ClassCastException,
and re-throw a WrongType. |
ClassExp.java | Class | |
ClassInitializer.java | Class | Cause a class value from a ClassExp to be initialized. |
Compilation.java | Class | State for a single expression or module. |
ConditionalTarget.java | Class | This is the Target of a boolean expression, in a conditional context.
If the expression evaluates to, transfer to the ifTrue label;
if false, tranfer to the ifFalse label. |
ConsumerTarget.java | Class | A Target which is some variable that implements gnu.lists.Consumer. |
Declaration.java | Class | The static information associated with a local variable binding.
author: Per Bothner author: These are the kinds of Declaration we use: author: A local variable that is not captured by an inner lambda is stored author: in a Java local variables slot (register). |
ErrorExp.java | Class | |
ExitExp.java | Class | Expression to exit a lexically surrounding block. |
Expression.java | Class | Abstract class for syntactic forms that evaluate to a value. |
ExpWalker.java | Class | Class for doing a tree-walk over an Expression tree. |
FindCapturedVars.java | Class | |
FindTailCalls.java | Class | Does setTailCall on ApplyExp's that are tail-calls.
Also setCanRead, setCanCall, setCanWrite on Declarations
and setCanRead, setCanCall on LambdaExp when appropriate. |
FluidLetExp.java | Class | Class used to implement "fluid-let" for Scheme and "let" for Emacs. |
GenericProc.java | Class | A collection of MethodProcs; one is chosen at apply time. |
IfExp.java | Class | This class represents a conditional. |
IgnoreTarget.java | Class | |
Initializer.java | Class | A piece of code that needs to be added to , , or whatever. |
Inlineable.java | Interface | |
InlineCalls.java | Class | |
KawaConvert.java | Class | Override gnu.lists.Convert to use Kawa number and Char classes. |
Keyword.java | Class | |
LambdaExp.java | Class | Class used to implement Scheme lambda expressions. |
LangExp.java | Class | A language-specific expression. |
Language.java | Class | Contains various language-dependent methods.
Also contains "global" state about the executation environment,
such as the global Environment. |
LetExp.java | Class | Class used to implement "let" syntax (and variants) for Scheme. |
Literal.java | Class | A Literal contains compile-time information about a constant. |
LitTable.java | Class | Manages the literals of a Compilation.
Implements ObjectOutput, because we use externalization to determine
how literals get compiled into code that re-creates the literal. |
ModuleBody.java | Class | Class for the dummy top-level function of a module. |
ModuleContext.java | Class | Maps modules to module instances. |
ModuleExp.java | Class | Class used to implement Scheme top-level environments. |
ModuleInfo.java | Class | |
ModuleManager.java | Class | A database of known modules as represented by
ModuleInfo .. |
ModuleMethod.java | Class | Call a specified method in in a ModuleBody. |
ModuleSet.java | Class | The compiler generates extensions of this class.
For each compiler-generated
PACKAGE the
compiler also generates a class
PACKAGE.$ModulesMap$ that extends
ModuleSet .
This is used to register the modules in a given package
with the active
ModuleManager . |
ModuleWithContext.java | Class | |
NameLookup.java | Class | Manages the set of declarations "currently" in scope. |
ObjectExp.java | Class | |
PairClassType.java | Class | A class type implemented as a pair of an interface and a class. |
PrimProcedure.java | Class | A primitive Procedure implemented by a plain Java method. |
ProcInitializer.java | Class | |
PushApply.java | Class | Re-arranges ApplyExp where the function is a LetExp or BeginExp.
Optimizes ((let (...) body) . |
QuoteExp.java | Class | An Expression that evaluates to a constant value. |
ReferenceExp.java | Class | This class represents a variable reference (an identifier). |
ResolveNames.java | Class | This resolves references to lexical Declarations.
So far it is only used for XQuery, which overrides it. |
ScopeExp.java | Class | Abstract class for expressions that add local variable bindings. |
SeriesTarget.java | Class | The value in the result (as a sequence of values) is passed to a function. |
SetExp.java | Class | An Expression to set (bind) or define a new value to a named variable. |
Special.java | Class | A class of special one-of-a-kind builtin values. |
StackTarget.java | Class | |
Symbols.java | Class | Utility class containing various routines to manipulate Scheme symbols.
Note Scheme symbols are represented using java.lang.String objects,
and there are no Symbol objects. |
SynchronizedExp.java | Class | |
Target.java | Class | This represents where a compiler can put the result of an expression. |
ThisExp.java | Class | Evaluates to the "this" implicit variable.
This is currently neither robust nor general. |
TryExp.java | Class | This class represents try/catch/finally. |
TypeValue.java | Interface | A Type or a Type expression. |