| ArrayDeclarator | Declarator for an array |
| Asm | Inline assembly |
| AsmStmt | Statement of assembly instructions |
| ASTNode | Root abstract class for Abstract syntax tree nodes |
| ASTNode(Print) | AST traverals category to print as C |
| BinExpr | A binary expression |
| Block | A C block (list of statements) |
| CallExpr | Function Call |
| CastExpr | Cast Expression |
| check_context | Context information used for typechecking |
| ClassMessageExpr | Message passed to a class |
| ClassMethodDec | Class method declaration |
| ClassMethodDefinition | Class method definition |
| ClassReg | Used for classes |
| ClassType | Manages type information for a class |
| CondExpr | The conditional (trinary) operator expression., |
| Cons | A cons cell |
| ContainerReg | Used for structs and unions |
| ContainerTipe | Abstract types for structs/unions/classes |
| Declaration | Declaration for variable/typedef |
| DeclarationSpec | A list of declaration specifiers |
| Declarator | Name and pointer/array info for variable |
| DeclInit | One variable in a declaration and its initializer |
| DeclReg | Closure object used to register a declaration |
| DoWhile | Do While loop |
| Enum | An enum declaration |
| Enumerator | A single enumertor in an enum declaration |
| EnumTypeSpec | A type specifier for an enum declaration |
| ErrorTipe | Generated on typechecking errors to avoid cascading errors |
| Expr | Abstract class for expressions |
| Expr(Print) | Precedence level printing for expressions |
| ExprStmt | A statement consisting of a single expression |
| Field | Field in a struct/union/class |
| File | Our translation unit |
| For | For loop |
| FormalReg | Registers function formals at definition |
| FormalWrapReg | Wraps the formal reg in formal ASTNode |
| FuncDeclarator | Declarator for an function pointer |
| FuncDefinition | Function Definition |
| FunctionTipe | Type of functions |
| Ident | An Identifier |
| Implementation | A class definition |
| Initializer | The initializer in a declaration |
| InstanceMessageExpr | Message passed to an instance |
| InstanceMethodDec | Instance method declaration |
| InstanceMethodDefinition | Instance method definition |
| InstanceVars | Fields declared in a class declaration |
| Interface | A class declaration |
| IntLiteral | Integer Literal |
| JumpStmt | A goto |
| KeyDeclarator | Declarator for a keyword argument |
| KeywordArgument | Arguments to messages (key: exp) |
| Klass | Abstract class for Interfaces and Implementations |
| LabeledStmt | A Label or a case in a switch |
| Literal | A literaral expression |
| MessageExpr | Abstract class for message expressions ([a key: b]) |
| Method | Abstract class for method declarations and definitions |
| MethodDec | Abstract class for method declarations |
| MethodDefinition | Abstract class for method definitions |
| NamedStructFieldInit | Single field in structure initializer |
| NameExpr | A expression for a named identifier |
| NameTypeSpec | A type specifier for a named (object or typedef'd) type |
| NormFormal | Type and name of function parameter |
| NullReg | Nop, for abstract declarators |
| ObjectTipe | Type for object instances |
| OpExpr | Abstract class for expressions with operators |
| PointerSpec | A type specifier for a pointer ('*') |
| PointerTipe | Pointer to some other type |
| PostfixExpr | A postfix unary expression |
| PrefixExpr | A prefix unary expression |
| PrimitiveTipe | Basic C type (ie, int, char, void) |
| PrimitiveTypeSpec | A type specifier for a primitive (ie int) |
| Scope | Nested Symbol Table |
| ScopeReg | Used for methods and functions |
| SelectionStmt | Selection statement (an if or a switch/case) |
| SimpleDeclarator | Declarator with just a name |
| SizeofExpr | The sizeof() operator expression |
| Stmt | Abstract class for statements |
| StoreSpec | A storage class specifier (ie static) |
| StringLiteral | String Literal |
| StructDeclaration | A field declaration within a struct |
| StructDeclarator | A declarator for a field within a struct |
| StructFieldInit | Single field in structure initializer |
| StructInitializer | A Structure initializer |
| StructOrUnion | A struct or union declaration |
| StructTipe | Type for structures |
| StructTypeSpec | A type specifier for a struct or union declaration |
| SubscriptExpr | An array subscript expression |
| SymTable | A mapping from (char*) to (id) |
| SymTableReg | Used for structs and unions |
| table_entry | Structure for entries in symbol table |
| Tipe | Abstract class for types |
| Token | Holds information about tokens produced by scanner |
| Type | A fully qualified type |
| TypeSpec | A type specifier (ie int) |
| UnExpr | A unary expression |
| UnionTipe | Type for unions |
| VaFormal | VaArgs (elipsis) |
| VarDecList | List of variable declarations |
| VisSpec | Class field visibility specificier, (ie @public) |
| While | While loop |
1.5.2