| Interface | Description |
|---|---|
| ASTVisitor |
Definition of a Visitor interface for AST trees.
|
| ILOCProcessor |
All ILOC processing passes (static analysis, optimization, machine code
generation, etc.) should implement this (admittedly simple) standardized
interface.
|
| Class | Description |
|---|---|
| AllocateSymbols | |
| ASTAssignment |
Decaf assignment statement.
|
| ASTBinaryExpr |
Decaf binary operation with an operation tag and two child sub-expressions.
|
| ASTBlock |
Lexical scope in a Decaf program; e.g., a function body or a while-loop
body.
|
| ASTBreak |
Decaf "break" statement (should be inside a loop structure).
|
| ASTConditional |
Decaf control structure; a block of code that is only executed if the
condition is true when the code is encountered during execution. |
| ASTContinue |
Decaf "continue" statement (should be inside a loop structure).
|
| ASTExpression |
Any Decaf expression that can be evaluated to a value at runtime.
|
| ASTFunction |
Decaf function declaration.
|
| ASTFunction.Parameter |
Decaf formal parameter (name and data type).
|
| ASTFunctionCall |
Decaf function call that is intended to return a value at runtime.
|
| ASTLiteral |
Decaf literal value.
|
| ASTLocation |
Decaf location.
|
| ASTNode |
Abstract base class for abstract syntax tree (AST) nodes.
|
| ASTProgram |
Decaf program.
|
| ASTReturn |
Decaf "return" statement (should be inside of a function).
|
| ASTStatement |
Any Decaf statement that can be executed at runtime.
|
| ASTUnaryExpr |
Unary operation with an operation tag and a child sub-expression.
|
| ASTVariable |
Decaf variable declaration.
|
| ASTVoidFunctionCall |
Decaf function call that is NOT intended to return a value.
|
| ASTWhileLoop |
Decaf loop structure; contains a "guard" expression and a loop body block.
|
| BuildParentLinks |
AST pre-order visitor; initializes parent links for use in later AST
analyses.
|
| BuildSymbolTables |
Static analysis pass to construct symbol tables.
|
| CalculateNodeDepths |
AST pre-order visitor; calculates "depth" at each node in the AST.
|
| DecafAnalysis |
Static analysis; perform type checking.
|
| DecafCompiler |
Decaf compiler driver class.
|
| DecafLexer |
"Stub" Decaf lexer.
|
| DecafParser |
"Stub" Decaf parser.
|
| DefaultASTVisitor |
Basic "stub" implementation of the
ASTVisitor interface. |
| ExportControlFlowDOT |
Build a digraph DOT representation of a Decaf CFG, which can converted to an
image (e.g., PNG or JPEG) using the "dot" utility included with GraphViz.
|
| ExportTreeDOT |
Build a digraph DOT representation of a Decaf AST, which can converted to an
image (e.g., PNG or JPEG) using the "dot" utility included with GraphViz.
|
| GenerateX86 |
Generates NASM-compatible x86 assembly code from an
ILOCProgram. |
| GenerateY86 |
Generates y86-64 assembly code from an
ILOCProgram. |
| ILOCBasicBlock | |
| ILOCFunction |
Decaf function in ILOC intermediate representation (IR).
|
| ILOCGenerator |
AST post-visitor; converts a Decaf program in AST IR to ILOC IR by walking
the tree and recursively emitting sequential IR.
|
| ILOCInstruction |
Represents a single ILOC instruction in a pseudo-triple format, including a
"form" indicator (enum) and up to three operands, which can
represent virtual register IDs, special registers, constants, or jump/call
targets.
|
| ILOCInterpreter |
Simulates a simple architecture that can directly execute ILOC programs.
|
| ILOCOperand |
Single ILOC instruction operand: a register (named or virtual), a jump/call
label, an integer constant, or a string constant.
|
| ILOCProgram |
Decaf program in ILOC intermediate representation (IR).
|
| LocalRegisterAllocator |
Performs register allocation for an ILOC program.
|
| MyDecafAnalysis |
Perform type checking using the Decaf type rules.
|
| MyDecafLexer |
Concrete Decaf lexer class.
|
| MyDecafParser |
Concrete Decaf parser class.
|
| MyILOCGenerator |
Concrete ILOC generator class.
|
| MyLivenessAnalysis |
Performs liveness analysis on an ILOC program.
|
| MyLocalRegisterAllocator | |
| PeepholeOptimizer |
Performs several basic peephole optimizations on an ILOC program.
|
| PrintDebugSymbolTables |
AST pre-order visitor; prints each node with a symbol table to standard
output.
|
| PrintDebugTree |
AST pre-order visitor; prints each node to standard output.
|
| RenumberRegistersAndLabels |
Simple ILOC analysis pass that renumbers all the virtual register and
anonymous jump label IDs.
|
| SourceInfo |
Stores information about a location in a program's source code.
|
| StaticAnalysis |
Provides a mechanism for aggregating
InvalidProgramException errors
from any AST static analysis pass. |
| Symbol |
Single Decaf symbol.
|
| SymbolTable |
Stores name-to-symbol-info mappings for a single lexical scope.
|
| Token |
Data structure that represents a single token of a Decaf program.
|
| Enum | Description |
|---|---|
| ASTBinaryExpr.BinOp |
List of permitted binary operations.
|
| ASTNode.DataType |
List of Decaf AST data types.
|
| ASTUnaryExpr.UnaryOp |
List of permitted unary operations.
|
| ILOCInstruction.Form |
Possible forms of an ILOC instruction
|
| ILOCOperand.Type | |
| Symbol.MemLoc |
Memory access locations.
|
| Token.Type |
Token type.
|
| Exception | Description |
|---|---|
| InvalidInstructionException |
Error encountered during execution.
|
| InvalidProgramException |
Error encountered during static/semantic analysis.
|
| InvalidSyntaxException |
Error encountered during parsing.
|
| InvalidTokenException |
Error encountered during lexing.
|
Copyright © 2019. All rights reserved.