Package gnu.expr

Supports Expression, and various related classes need to compile programming languages.

Interface Summary

CanInlineInline an application, at the Expression level.
Inlineable
TypeValueA Type or a Type expression.

Class Summary

AccessExpA common super-type for ReferenceExpa and SetExp.
ApplyExpThis class is used to represent "combination" or "application".
BeginExp This class represents a sequence of Expressions.
BindingInitializer
BlockExp Class used to implement a block that can be exited.
BuiltinEnvironmentAn Environment containing the default bindings for the current Language.
CatchClauseA "catch" clause of a "try-catch" form.
ChainLambdasSets up the firstChild/nextSibling links of each LambdaExp.
CheckedTargetSame as StackTarget, but catch ClassCastException.
ClassExp
ClassInitializerCause a class value from a ClassExp to be initialized.
CompilationState for a single expression or module.
ConditionalTargetThis is the Target of a boolean expression, in a conditional context.
ConsumerTarget A Target which is some variable that implements gnu.lists.Consumer.
Declaration The static information associated with a local variable binding.
ErrorExp Class used to mark an erroneous expression
ExitExp Expression to exit a lexically surrounding block.
Expression Abstract class for syntactic forms that evaluate to a value.
ExpWalkerClass for doing a tree-walk over an Expression tree.
FindCapturedVars
FindTailCallsDoes setTailCall on ApplyExp's that are tail-calls.
FluidLetExp Class used to implement "fluid-let" for Scheme and "let" for Emacs.
GenericProcA collection of MethodProcs; one is chosen at apply time.
IfExp This class represents a conditional.
IgnoreTarget
InitializerA piece of code that needs to be added to , , or whatever.
InlineCalls
KawaConvertOverride gnu.lists.Convert to use Kawa number and Char classes.
Keyword
LambdaExp Class used to implement Scheme lambda expressions.
LangExpA language-specific expression.
Language Contains various language-dependent methods.
LetExp Class used to implement "let" syntax (and variants) for Scheme.
LiteralA Literal contains compile-time information about a constant.
LitTableManages the literals of a Compilation.
ModuleBody Class for the dummy top-level function of a module.
ModuleContextMaps modules to module instances.
ModuleExp Class used to implement Scheme top-level environments.
ModuleInfo
ModuleManagerA database of known modules as represented by ModuleInfo..
ModuleMethodCall a specified method in in a ModuleBody.
ModuleSetThe compiler generates extensions of this class.
ModuleWithContext
NameLookupManages the set of declarations "currently" in scope.
ObjectExp
PairClassTypeA class type implemented as a pair of an interface and a class.
PrimProcedureA primitive Procedure implemented by a plain Java method.
ProcInitializer
PushApplyRe-arranges ApplyExp where the function is a LetExp or BeginExp.
QuoteExp An Expression that evaluates to a constant value.
ReferenceExp This class represents a variable reference (an identifier).
ResolveNamesThis resolves references to lexical Declarations.
ScopeExp Abstract class for expressions that add local variable bindings.
SeriesTargetThe value in the result (as a sequence of values) is passed to a function.
SetExpAn Expression to set (bind) or define a new value to a named variable.
SpecialA class of special one-of-a-kind builtin values.
StackTarget
SymbolsUtility class containing various routines to manipulate Scheme symbols.
SynchronizedExp
TargetThis represents where a compiler can put the result of an expression.
ThisExpEvaluates to the "this" implicit variable.
TryExp This class represents try/catch/finally.
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.