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.