Documentation

API Overview

Classes, Protocols and Categories by Groups

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.

LKBreak

AST node representing early loop termination.

If a label is specified, the LKLoop with the same label is ended. Otherwise, breaks out of the closest surrounding loop.

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.

LKSymbol

LKSymbol wraps entries in a symbol table.

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.

LKToken

LKToken implements a token for use in parsers. A token is a symbol or word in a source program. The LKToken class stores this as a range and a pointer to the source program, allowing it to be easily mapped back to the original.

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.