API Overview
Misc

- LKIfStatement
Description forthcoming.
- LKArrayExpr
Description forthcoming.
- LKFunction
AST node representing a function.
- LKVariableDecl
Description forthcoming.
- LKCodeGenLoader
Class used to instantiate the default code generators. Lazily loads the code generator components the first time it receives a message.
- <LKCodeGenerator>
Code generator protocol. Each AST node calls methods in a class conforming to this protocol. Methods which return a value return a pointer to a generator-specific type, which can then be passed in to the generator later when it expects a value.
- <LKStaticCodeGenerator>
Protocol for static code generators.
- LKCategoryDef
AST node representing a new category definition.
- LKAssignExpr
AST node representing an assignment.
- LKBlockSelfRef
Reference to the block object, from within its scope.
- LKBuiltinSymbol
Abstract class for all built-in symbols. These are subclasses of LKDeclRef, so it's possible to set their name. For example, a Java-like language may choose to call the self builtin 'this', or a Go-like frontend may give it a different name for every method.
- LKDeclRef
AST node representing a reference to a variable.
- LKNilRef
A nil (object) value.
- LKSelfRef
Reference to the receiver, in methods and blocks inside methods.
- LKSuperRef
Reference to the superclass of he receiver.
- LKEnumReference
Description forthcoming.
- LKSymbolRef
AST node representing a reference to a symbol (selector).
- LKInterpreterContext
Wrapper around a map table which contains the objects in a Smalltalk stack frame.
- LKAST (LKInterpreter)
Description forthcoming.
- LKBlockExpr (LKInterpreter)
Description forthcoming.
- LKMethod (LKInterpreter)
Description forthcoming.
- LKSubclass (LKInterpreter)
Description forthcoming.
- LKASTVisitor
Generic superclass for AST visitors. Visitors subclassing this implement methods of the form:
- (LKAST) visitComment:(LKComment*)aNode;
Where Comment can be the suffix of any AST node subclass
- LKAST
Root class for AST nodes. Every node in the abstract syntax tree inherits from this. It stores the parent, allowing navigation up the tree, and a pointer to the symbol table for this scope.
- LKAST (Interpreter)
Description forthcoming.
- LKAST (Visitor)
Description forthcoming.
- <LKASTVisitor>
Protocol for AST visitors. Used for classes that perform AST transforms.
- LKComment
Description forthcoming.
- LKCompiler
Abstract class implementing a dynamic language compiler. Concrete subclasses provide implementations for specific languages.
- LKCompiler (JTL)
Description forthcoming.
- <LKCompilerDelegate>
Description forthcoming.
- <LKParser>
All languages must use a parser conforming to this protocol.
- LKClassMethod
Description forthcoming.
- LKFreestandingMethod
A freestanding method is a method that is not attached to any class. It is used in REPL mode, and might be useful for better support for prototypes.
- LKInstanceMethod
Description forthcoming.
- LKMethod
AST node representing a method.
- LKBlockExpr
AST node representing a block closure expression.
- LKContinue
AST node representing a skip to the next loop iteration.
If a label is specified, skips to the end of the LKLoop with the same label. Otherwise, does the same for the closest surrounding loop.
- LKLoop
AST node representing a loop construct.
The loop may have pre- and post-conditions that will terminate the loop when evaluated to false, or one might rely on LKReturn or LKBreak to end the loop.
It is possible to set a list of statements that will be executed after each iteration, typically to increment a counter or similar. Initialization may be done from a statement list in this node as well.
Each LKLoop may be labelled to make it possible to break or continue outer loops when there are nested flows of control.
- LKLoopFlowControl
Abstract superclass for LKBreak and LKContinue, implementing shared behavior.
- LKModule
AST node representing a module - a set of classes and categories compiled together.
- LKCompare
Description forthcoming.
- LKSymbolTable
Symbol table. Base class, with subclasses for each scope.
- LKFloatLiteral
Floating point literal value.
- LKLiteral
Description forthcoming.
- LKNumberLiteral
Description forthcoming.
- LKStringLiteral
Description forthcoming.
- LKMessageCascade
Send an array of messages to the same receiver. The receiver expression will be evaluated once and each message will be sent to this receiver.
- LKMessageSend
AST node representing a message send operation.
- LKSubclass
AST node representing a new class definition.
- LKFunctionCall
AST node representing a call to a C function.
- LKBlockReturn
AST node representing a block return.
- LKReturn
AST node representing a method return.