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 |
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. |
Branchable.java | Interface | |
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. |
CheckContract.java | Class | Check that a precondition holds, and that the body
leads to the postcondition to hold. |
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 | |
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. |
ConstructorExp.java | Class | A constructor method. |
ConsumerTarget.java | Class | A Target which is some variable that implements gnu.lists.Consumer. |
CopyArgument.java | Class | Copy the value of a previous argument in the same function call. |
Declaration.java | Class | The static information associated with a local variable binding.
These are the kinds of Declaration we use:
A local variable that is not captured by an inner lambda is stored
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 | |
IncrementExp.java | Class | Pre/post incrementation of a local variable. |
InitializeProc.java | Class | Call one of the constructors of a class. |
Initializer.java | Class | A piece of code that needs to be added to , , or whatever. |
Inlineable.java | Interface | |
InlineCalls.java | Class | |
InstantiateProc.java | Class | Instantiate an object and call one of its constructors. |
Interpreter.java | Class | Contains various language-dependent methods.
Also contains "global" state about the executation environment,
such as the global Environment. |
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. |
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. |
LoopExp.java | Class | A generic loop. |
MemberLambdaExp.java | Class | A LambdaExp member of a class (with a this argument). |
ModuleBody.java | Class | Abstract class for the dummy top-level function of a module. |
ModuleExp.java | Class | Class used to implement Scheme top-level environments. |
ModuleMethod.java | Class | Call a specified method in in a ModuleBody. |
ObjectExp.java | Class | |
Package.java | Class | A set of classes to generate as a java-like package. |
PairClassType.java | Class | A class type implemented as a pair of an interface and a class. |
Parser.java | Class | A very abstract "parser".
Converts some input representation to Expression trees. |
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). |
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. |
SimpleIfExp.java | Class | |
Special.java | Class | A class of special one-of-a-kind builtin values. |
StackTarget.java | Class | |
Symbol.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. |
Undefined.java | Class | |