Skip navigation links
A B C D E F G H I K L M N O P R S T U V W Z 

A

addComment(ASTNode, String) - Method in class edu.jmu.decaf.ILOCGenerator
Add a comment to the most recently-emitted ILOC instruction.
addError(InvalidProgramException) - Static method in class edu.jmu.decaf.StaticAnalysis
Report an InvalidProgramException error.
addError(String) - Static method in class edu.jmu.decaf.StaticAnalysis
Report an error message to be saved for later aggregation.
addEscapeCodes(String) - Static method in class edu.jmu.decaf.ASTLiteral
Remove quotes, newlines, and tabs from string literals and replace them with their escape codes.
addIgnoredPattern(String) - Method in class edu.jmu.decaf.DecafLexer
Add a regular expression that describes an ignored token.
addInstruction(ILOCInstruction) - Method in class edu.jmu.decaf.ILOCFunction
Append a new instruction to the function.
addTokenPattern(Token.Type, String) - Method in class edu.jmu.decaf.DecafLexer
Add a regular expression that describes a particular type of token.
allBlocks - Variable in class edu.jmu.decaf.ILOCFunction
It is useful to maintain a list of all blocks for liveness analysis
allocateRegisters(ILOCBasicBlock) - Method in class edu.jmu.decaf.LocalRegisterAllocator
Perform local register allocation for a single basic block.
allocateRegisters(ILOCBasicBlock) - Method in class edu.jmu.decaf.MyLocalRegisterAllocator
Perform local register allocation for a single basic block.
AllocateSymbols - Class in edu.jmu.decaf
 
AllocateSymbols() - Constructor for class edu.jmu.decaf.AllocateSymbols
 
arguments - Variable in class edu.jmu.decaf.ASTFunctionCall
 
arguments - Variable in class edu.jmu.decaf.ASTVoidFunctionCall
 
arrayLength - Variable in class edu.jmu.decaf.ASTVariable
 
assertAllRegOperands(ILOCInstruction, int) - Method in class edu.jmu.decaf.ILOCInterpreter
 
assertIsValid(ILOCInstruction) - Method in class edu.jmu.decaf.ILOCInterpreter
 
assertNumOperands(ILOCInstruction, int) - Method in class edu.jmu.decaf.ILOCInterpreter
 
assertOperandIsRegister(ILOCInstruction, ILOCOperand) - Method in class edu.jmu.decaf.ILOCInterpreter
 
assertOperandType(ILOCInstruction, ILOCOperand, ILOCOperand.Type) - Method in class edu.jmu.decaf.ILOCInterpreter
 
assertType(ASTNode, ASTNode.DataType) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
assertValidParameters(List<ASTNode.DataType>, List<ASTExpression>, SourceInfo) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
ASTAssignment - Class in edu.jmu.decaf
Decaf assignment statement.
ASTAssignment(ASTLocation, ASTExpression) - Constructor for class edu.jmu.decaf.ASTAssignment
 
ASTBinaryExpr - Class in edu.jmu.decaf
Decaf binary operation with an operation tag and two child sub-expressions.
ASTBinaryExpr(ASTBinaryExpr.BinOp, ASTExpression, ASTExpression) - Constructor for class edu.jmu.decaf.ASTBinaryExpr
 
ASTBinaryExpr.BinOp - Enum in edu.jmu.decaf
List of permitted binary operations.
ASTBlock - Class in edu.jmu.decaf
Lexical scope in a Decaf program; e.g., a function body or a while-loop body.
ASTBlock() - Constructor for class edu.jmu.decaf.ASTBlock
 
ASTBreak - Class in edu.jmu.decaf
Decaf "break" statement (should be inside a loop structure).
ASTBreak() - Constructor for class edu.jmu.decaf.ASTBreak
 
ASTConditional - Class in edu.jmu.decaf
Decaf control structure; a block of code that is only executed if the condition is true when the code is encountered during execution.
ASTConditional(ASTExpression, ASTBlock) - Constructor for class edu.jmu.decaf.ASTConditional
 
ASTConditional(ASTExpression, ASTBlock, ASTBlock) - Constructor for class edu.jmu.decaf.ASTConditional
 
ASTContinue - Class in edu.jmu.decaf
Decaf "continue" statement (should be inside a loop structure).
ASTContinue() - Constructor for class edu.jmu.decaf.ASTContinue
 
ASTExpression - Class in edu.jmu.decaf
Any Decaf expression that can be evaluated to a value at runtime.
ASTExpression() - Constructor for class edu.jmu.decaf.ASTExpression
 
ASTFunction - Class in edu.jmu.decaf
Decaf function declaration.
ASTFunction(String, ASTNode.DataType, ASTBlock) - Constructor for class edu.jmu.decaf.ASTFunction
 
ASTFunction.Parameter - Class in edu.jmu.decaf
Decaf formal parameter (name and data type).
ASTFunctionCall - Class in edu.jmu.decaf
Decaf function call that is intended to return a value at runtime.
ASTFunctionCall(String) - Constructor for class edu.jmu.decaf.ASTFunctionCall
 
ASTLiteral - Class in edu.jmu.decaf
Decaf literal value.
ASTLiteral(ASTNode.DataType, Object) - Constructor for class edu.jmu.decaf.ASTLiteral
 
ASTLocation - Class in edu.jmu.decaf
Decaf location.
ASTLocation(String) - Constructor for class edu.jmu.decaf.ASTLocation
 
ASTLocation(String, ASTExpression) - Constructor for class edu.jmu.decaf.ASTLocation
 
ASTNode - Class in edu.jmu.decaf
Abstract base class for abstract syntax tree (AST) nodes.
ASTNode() - Constructor for class edu.jmu.decaf.ASTNode
Generic constructor.
ASTNode.DataType - Enum in edu.jmu.decaf
List of Decaf AST data types.
ASTProgram - Class in edu.jmu.decaf
Decaf program.
ASTProgram() - Constructor for class edu.jmu.decaf.ASTProgram
 
ASTReturn - Class in edu.jmu.decaf
Decaf "return" statement (should be inside of a function).
ASTReturn() - Constructor for class edu.jmu.decaf.ASTReturn
 
ASTReturn(ASTExpression) - Constructor for class edu.jmu.decaf.ASTReturn
 
ASTStatement - Class in edu.jmu.decaf
Any Decaf statement that can be executed at runtime.
ASTStatement() - Constructor for class edu.jmu.decaf.ASTStatement
 
ASTUnaryExpr - Class in edu.jmu.decaf
Unary operation with an operation tag and a child sub-expression.
ASTUnaryExpr(ASTUnaryExpr.UnaryOp, ASTExpression) - Constructor for class edu.jmu.decaf.ASTUnaryExpr
 
ASTUnaryExpr.UnaryOp - Enum in edu.jmu.decaf
List of permitted unary operations.
ASTVariable - Class in edu.jmu.decaf
Decaf variable declaration.
ASTVariable(String, ASTNode.DataType) - Constructor for class edu.jmu.decaf.ASTVariable
 
ASTVariable(String, ASTNode.DataType, int) - Constructor for class edu.jmu.decaf.ASTVariable
 
ASTVisitor - Interface in edu.jmu.decaf
Definition of a Visitor interface for AST trees.
ASTVoidFunctionCall - Class in edu.jmu.decaf
Decaf function call that is NOT intended to return a value.
ASTVoidFunctionCall(String) - Constructor for class edu.jmu.decaf.ASTVoidFunctionCall
 
ASTWhileLoop - Class in edu.jmu.decaf
Decaf loop structure; contains a "guard" expression and a loop body block.
ASTWhileLoop(ASTExpression, ASTBlock) - Constructor for class edu.jmu.decaf.ASTWhileLoop
 
attributes - Variable in class edu.jmu.decaf.ASTNode
Generic key/value store.

B

base - Variable in class edu.jmu.decaf.ILOCFunction.Variable
 
base(ASTNode, Symbol) - Method in class edu.jmu.decaf.ILOCGenerator
Fills a register with the base address of a variable.
body - Variable in class edu.jmu.decaf.ASTFunction
 
body - Variable in class edu.jmu.decaf.ASTWhileLoop
 
buildCFG() - Method in class edu.jmu.decaf.ILOCFunction
Builds the control flow graph for this function.
BuildParentLinks - Class in edu.jmu.decaf
AST pre-order visitor; initializes parent links for use in later AST analyses.
BuildParentLinks() - Constructor for class edu.jmu.decaf.BuildParentLinks
 
BuildSymbolTables - Class in edu.jmu.decaf
Static analysis pass to construct symbol tables.
BuildSymbolTables() - Constructor for class edu.jmu.decaf.BuildSymbolTables
 

C

calcLiveInAndLiveOut(ILOCBasicBlock) - Method in class edu.jmu.decaf.MyLivenessAnalysis
Calculate live registers at the entry and exit of each basic block reachable from the given entry block.
CalculateNodeDepths - Class in edu.jmu.decaf
AST pre-order visitor; calculates "depth" at each node in the AST.
CalculateNodeDepths() - Constructor for class edu.jmu.decaf.CalculateNodeDepths
 
calcUpwardExposedAndKilledRegs(ILOCBasicBlock) - Method in class edu.jmu.decaf.MyLivenessAnalysis
Calculate upward-exposed and killed registers for every basic block reachable from the given entry block.
checkStack() - Method in class edu.jmu.decaf.ILOCInterpreter
 
child - Variable in class edu.jmu.decaf.ASTUnaryExpr
 
clone() - Method in class edu.jmu.decaf.ILOCInstruction
Create a *deep copy* of this instruction.
clone() - Method in class edu.jmu.decaf.ILOCOperand
Creates a copy of this ILOCOperand object.
comment - Variable in class edu.jmu.decaf.ILOCInstruction
Optional human-readable comment for this instruction
condition - Variable in class edu.jmu.decaf.ASTConditional
 
consumeNextToken(Queue<Token>) - Method in class edu.jmu.decaf.DecafParser
Discard the next token.
copyCode(ASTNode, ASTNode) - Method in class edu.jmu.decaf.ILOCGenerator
Copy the ILOC code from one AST node into another.
currentBlock - Variable in class edu.jmu.decaf.LocalRegisterAllocator
Basic block that is currently being allocated
currentFunction - Variable in class edu.jmu.decaf.LocalRegisterAllocator
Function that is currently being allocated

D

debugPrint() - Method in class edu.jmu.decaf.ILOCBasicBlock
 
DecafAnalysis - Class in edu.jmu.decaf
Static analysis; perform type checking.
DecafAnalysis() - Constructor for class edu.jmu.decaf.DecafAnalysis
 
DecafCompiler - Class in edu.jmu.decaf
Decaf compiler driver class.
DecafCompiler(String[]) - Constructor for class edu.jmu.decaf.DecafCompiler
Create a new compiler instance
DecafLexer - Class in edu.jmu.decaf
"Stub" Decaf lexer.
DecafLexer() - Constructor for class edu.jmu.decaf.DecafLexer
Generic constructor.
DecafParser - Class in edu.jmu.decaf
"Stub" Decaf parser.
DecafParser() - Constructor for class edu.jmu.decaf.DecafParser
 
DefaultASTVisitor - Class in edu.jmu.decaf
Basic "stub" implementation of the ASTVisitor interface.
DefaultASTVisitor() - Constructor for class edu.jmu.decaf.DefaultASTVisitor
 
defaultInVisit(ASTNode) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
defaultPostVisit(ASTNode) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
defaultPostVisit(ASTNode) - Method in class edu.jmu.decaf.ExportTreeDOT
 
defaultPreVisit(ASTNode) - Method in class edu.jmu.decaf.CalculateNodeDepths
 
defaultPreVisit(ASTNode) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
defaultPreVisit(ASTNode) - Method in class edu.jmu.decaf.ExportTreeDOT
 
defaultPreVisit(ASTNode) - Method in class edu.jmu.decaf.PrintDebugSymbolTables
 
discardIgnored(StringBuffer) - Method in class edu.jmu.decaf.DecafLexer
Discard any ignored text.
dumpSystemState() - Method in class edu.jmu.decaf.ILOCInterpreter
 

E

edu.jmu.decaf - package edu.jmu.decaf
 
elementSize - Variable in class edu.jmu.decaf.Symbol
Size of individual elements (in bytes)
elseBlock - Variable in class edu.jmu.decaf.ASTConditional
 
emit(ASTNode, ILOCInstruction) - Method in class edu.jmu.decaf.ILOCGenerator
Generate a new ILOC instruction and add it to the code for an AST node.
emit(ASTNode, ILOCInstruction.Form) - Method in class edu.jmu.decaf.ILOCGenerator
Generate a new ILOC instruction and add it to the code for an AST node.
emit(ASTNode, ILOCInstruction.Form, ILOCOperand) - Method in class edu.jmu.decaf.ILOCGenerator
Generate a new ILOC instruction and add it to the code for an AST node.
emit(ASTNode, ILOCInstruction.Form, ILOCOperand, ILOCOperand) - Method in class edu.jmu.decaf.ILOCGenerator
Generate a new ILOC instruction and add it to the code for an AST node.
emit(ASTNode, ILOCInstruction.Form, ILOCOperand, ILOCOperand, ILOCOperand) - Method in class edu.jmu.decaf.ILOCGenerator
Generate a new ILOC instruction and add it to the code for an AST node.
emitArgs(ASTNode, List<ASTExpression>) - Method in class edu.jmu.decaf.MyILOCGenerator
 
emitLoad(ASTLocation) - Method in class edu.jmu.decaf.ILOCGenerator
Emits a right-hand-side load for a given location.
emitSpillLoad(int, int, int, String) - Method in class edu.jmu.decaf.LocalRegisterAllocator
Emit a new instruction at the given index.
emitSpillStore(int, int, String) - Method in class edu.jmu.decaf.LocalRegisterAllocator
Emit a new instruction at the given index.
emitStore(ASTAssignment, ILOCOperand) - Method in class edu.jmu.decaf.ILOCGenerator
Emits a store for a given assignment.
enableFastSysCalls() - Method in class edu.jmu.decaf.GenerateX86
 
entryBlock - Variable in class edu.jmu.decaf.ILOCFunction
Entry block (start of CFG)
equals(Object) - Method in class edu.jmu.decaf.ILOCFunction.Variable
 
equals(Object) - Method in class edu.jmu.decaf.ILOCOperand
Ensure that two operands are considered "equal" if their string-based representations are identical.
ExportControlFlowDOT - Class in edu.jmu.decaf
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.
ExportControlFlowDOT() - Constructor for class edu.jmu.decaf.ExportControlFlowDOT
 
ExportControlFlowDOT(PrintStream) - Constructor for class edu.jmu.decaf.ExportControlFlowDOT
 
ExportControlFlowDOT(PrintStream, boolean) - Constructor for class edu.jmu.decaf.ExportControlFlowDOT
 
ExportTreeDOT - Class in edu.jmu.decaf
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.
ExportTreeDOT() - Constructor for class edu.jmu.decaf.ExportTreeDOT
 
ExportTreeDOT(PrintStream) - Constructor for class edu.jmu.decaf.ExportTreeDOT
 
ExportTreeDOT(PrintStream, boolean) - Constructor for class edu.jmu.decaf.ExportTreeDOT
 
extract(Pattern, StringBuffer) - Method in class edu.jmu.decaf.DecafLexer
Test the given regular expression pattern against the beginning of the string buffer.

F

filename - Variable in class edu.jmu.decaf.SourceInfo
 
finalizeScope() - Method in class edu.jmu.decaf.BuildSymbolTables
Pop the stack and move outwards one scope level.
findBlockVars(Set<Integer>, ILOCBasicBlock, Set<Integer>, Map<Integer, String>) - Method in class edu.jmu.decaf.ILOCFunction
This is a recursive helper function which finds the uninitialized variables in a given basic block and all successors Original code written by Steven Young, CS 480 honors student.
findJumpTarget(ILOCOperand) - Method in class edu.jmu.decaf.ILOCInterpreter
 
findUnitializedVars(boolean) - Method in class edu.jmu.decaf.ILOCFunction
Finds and reports possible uninitialized variables in this ILOCFunction Original code written by Steven Young, CS 480 honors student.
flattenCFG() - Method in class edu.jmu.decaf.ILOCFunction
Flattens the control-flow graph into linear form (presumably after modifications have been made to the CFG).
form - Variable in class edu.jmu.decaf.ILOCInstruction
Instruction form
functions - Variable in class edu.jmu.decaf.ASTProgram
 
functions - Variable in class edu.jmu.decaf.ILOCProgram
List of ILOC functions
functionSymbol - Variable in class edu.jmu.decaf.ILOCFunction
Function Symbol from the AST symbol tables

G

GenerateX86 - Class in edu.jmu.decaf
Generates NASM-compatible x86 assembly code from an ILOCProgram.
GenerateX86(PrintStream) - Constructor for class edu.jmu.decaf.GenerateX86
 
GenerateY86 - Class in edu.jmu.decaf
Generates y86-64 assembly code from an ILOCProgram.
GenerateY86(PrintStream) - Constructor for class edu.jmu.decaf.GenerateY86
 
getAllSymbols() - Method in class edu.jmu.decaf.SymbolTable
Gets all symbols accessible in this scope, which includes all symbols defined at this level (from getSymbols()) plus all symbols defined in any parent symbol table.
getASTTypeStr() - Method in class edu.jmu.decaf.ASTNode
Returns a string with the AST class type (mainly used for debugging)
getBool(ILOCOperand) - Method in class edu.jmu.decaf.ILOCInterpreter
 
getCode(ASTNode) - Method in class edu.jmu.decaf.ILOCGenerator
Returns the ILOC code associated with an AST node (via the "code" attribute).
getCurrentSourceInfo(Queue<Token>) - Method in class edu.jmu.decaf.DecafParser
Retrieve the source info associated with the token at the head of the queue.
getCurrentTable() - Method in class edu.jmu.decaf.BuildSymbolTables
Return the innermost active symbol table.
getDepth() - Method in class edu.jmu.decaf.ASTNode
Retrieve the tree depth marker
getEntryBlock() - Method in class edu.jmu.decaf.ILOCFunction
Get the entry point to the function's control flow graph.
getErrors() - Static method in class edu.jmu.decaf.StaticAnalysis
Retrieve a list of all errors encountered by any StaticAnalysis subclass thus far.
getErrorString() - Static method in class edu.jmu.decaf.StaticAnalysis
Retrieve a message including all errors encountered by any StaticAnalysis subclass thus far.
getFunction(String) - Method in class edu.jmu.decaf.ILOCProgram
Search for a function based on name
getInheritedSymbols() - Method in class edu.jmu.decaf.SymbolTable
Gets all symbols accessible in this scope that are not defined in this scope; i.e., all symbols that are defined in a parent table.
getInstructions() - Method in class edu.jmu.decaf.ILOCFunction
Get the current instruction sequence.
getInt(ILOCOperand) - Method in class edu.jmu.decaf.ILOCInterpreter
 
getLastMatch() - Method in class edu.jmu.decaf.DecafLexer
Return the most recent text match extracted using DecafLexer.extract(java.util.regex.Pattern, java.lang.StringBuffer).
getNextID(String) - Method in class edu.jmu.decaf.ExportTreeDOT
 
getParameterStr() - Method in class edu.jmu.decaf.ASTFunction
 
getParent() - Method in class edu.jmu.decaf.ASTNode
Retrieve the uptree parent pointer
getProgram() - Method in class edu.jmu.decaf.ILOCGenerator
Returns the generated ILOC program.
getReadOperands() - Method in class edu.jmu.decaf.ILOCInstruction
Returns a list of ILOCOperands read by this instruction.
getReadOperands(boolean) - Method in class edu.jmu.decaf.ILOCInstruction
Returns a list of ILOCOperands read by this instruction.
getReturnValue() - Method in class edu.jmu.decaf.ILOCInterpreter
 
getSourceInfo() - Method in class edu.jmu.decaf.ASTNode
Retrieve the source code information
getSymbols() - Method in class edu.jmu.decaf.SymbolTable
Gets all symbols defined defined in this scope, in the order in which they were added.
getTempReg(ASTNode) - Method in class edu.jmu.decaf.ILOCGenerator
Returns the temporary ILOC virtual register associated with the result of evaluating a node in the AST.
getType() - Method in class edu.jmu.decaf.ASTNode
Retrieve the type
getWriteOperand() - Method in class edu.jmu.decaf.ILOCInstruction
Returns a single ILOCOperands written by this instruction.
getWriteOperands() - Method in class edu.jmu.decaf.ILOCInstruction
Returns a list of ILOCOperands written by this instruction.
guard - Variable in class edu.jmu.decaf.ASTWhileLoop
 

H

handle(ILOCInstruction) - Method in class edu.jmu.decaf.ILOCInterpreter
 
handled - Variable in class edu.jmu.decaf.LocalRegisterAllocator
Collection of basic blocks that have already been allocated
hasElseBlock() - Method in class edu.jmu.decaf.ASTConditional
 
hashCode() - Method in class edu.jmu.decaf.ILOCFunction.Variable
 
hashCode() - Method in class edu.jmu.decaf.ILOCOperand
Ensure that operands can be stored in hash sets and maps properly.
hasIndex() - Method in class edu.jmu.decaf.ASTLocation
 
hasValue() - Method in class edu.jmu.decaf.ASTReturn
 

I

id - Variable in class edu.jmu.decaf.ILOCBasicBlock
 
id - Variable in class edu.jmu.decaf.ILOCOperand
Unique ID (for virtual register and jump label operands)
ifBlock - Variable in class edu.jmu.decaf.ASTConditional
 
ILOCBasicBlock - Class in edu.jmu.decaf
 
ILOCFunction - Class in edu.jmu.decaf
Decaf function in ILOC intermediate representation (IR).
ILOCFunction(Symbol) - Constructor for class edu.jmu.decaf.ILOCFunction
Create a new (empty) ILOC function
ILOCFunction.Variable - Class in edu.jmu.decaf
Helper wrapper class for debug variable information (useful for data flow analysis)
ILOCGenerator - Class in edu.jmu.decaf
AST post-visitor; converts a Decaf program in AST IR to ILOC IR by walking the tree and recursively emitting sequential IR.
ILOCGenerator() - Constructor for class edu.jmu.decaf.ILOCGenerator
 
ILOCInstruction - Class in edu.jmu.decaf
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.
ILOCInstruction(ILOCInstruction.Form, ILOCOperand[]) - Constructor for class edu.jmu.decaf.ILOCInstruction
Create a new instruction
ILOCInstruction(ILOCInstruction.Form, ILOCOperand[], String) - Constructor for class edu.jmu.decaf.ILOCInstruction
Create a new instruction
ILOCInstruction.Form - Enum in edu.jmu.decaf
Possible forms of an ILOC instruction
ILOCInterpreter - Class in edu.jmu.decaf
Simulates a simple architecture that can directly execute ILOC programs.
ILOCInterpreter() - Constructor for class edu.jmu.decaf.ILOCInterpreter
 
ILOCInterpreter(boolean) - Constructor for class edu.jmu.decaf.ILOCInterpreter
 
ILOCOperand - Class in edu.jmu.decaf
Single ILOC instruction operand: a register (named or virtual), a jump/call label, an integer constant, or a string constant.
ILOCOperand.Type - Enum in edu.jmu.decaf
 
ILOCProcessor - Interface in edu.jmu.decaf
All ILOC processing passes (static analysis, optimization, machine code generation, etc.) should implement this (admittedly simple) standardized interface.
ILOCProgram - Class in edu.jmu.decaf
Decaf program in ILOC intermediate representation (IR).
ILOCProgram() - Constructor for class edu.jmu.decaf.ILOCProgram
Create a new ILOC program object with an empty symbol table
indent(ASTNode) - Method in class edu.jmu.decaf.PrintDebugSymbolTables
 
indent(ASTNode) - Method in class edu.jmu.decaf.PrintDebugTree
 
index - Variable in class edu.jmu.decaf.ASTLocation
 
indexedOffset(ASTNode, Symbol, ILOCOperand) - Method in class edu.jmu.decaf.ILOCGenerator
Calculates the offset of an indexed variable reference and returns the adjusted offset in an ILOCOperand.
initializeScope() - Method in class edu.jmu.decaf.BuildSymbolTables
Create a new innermost symbol table scope and push it on the stack.
insert(String, Symbol) - Method in class edu.jmu.decaf.SymbolTable
Inserts a new symbol into the symbol table
insertFunctionSymbol(ASTFunction) - Method in class edu.jmu.decaf.BuildSymbolTables
Add a symbol for the given function to the current (innermost) scope.
insertParamSymbol(ASTFunction.Parameter) - Method in class edu.jmu.decaf.BuildSymbolTables
Add a symbol for the given function parameter to the current (innermost) scope.
insertPrintFunctionSymbol(String, ASTNode.DataType) - Method in class edu.jmu.decaf.BuildSymbolTables
Add a symbol for a hard-coded function to the current (innermost) scope.
insertVariableSymbol(ASTVariable) - Method in class edu.jmu.decaf.BuildSymbolTables
Add a symbol for the given variable to the current (innermost) scope.
instructions - Variable in class edu.jmu.decaf.ILOCBasicBlock
 
instructions - Variable in class edu.jmu.decaf.ILOCFunction
List of ILOC instructions
intConstant - Variable in class edu.jmu.decaf.ILOCOperand
Integer constant (for int constant operands)
INVALID - Static variable in class edu.jmu.decaf.ILOCOperand
Invalid operand tag
INVALID - Static variable in class edu.jmu.decaf.SourceInfo
Flag value used to indicate missing or erroneous source information
InvalidInstructionException - Exception in edu.jmu.decaf
Error encountered during execution.
InvalidInstructionException(String) - Constructor for exception edu.jmu.decaf.InvalidInstructionException
 
InvalidProgramException - Exception in edu.jmu.decaf
Error encountered during static/semantic analysis.
InvalidProgramException(String) - Constructor for exception edu.jmu.decaf.InvalidProgramException
 
InvalidSyntaxException - Exception in edu.jmu.decaf
Error encountered during parsing.
InvalidSyntaxException(String) - Constructor for exception edu.jmu.decaf.InvalidSyntaxException
 
InvalidTokenException - Exception in edu.jmu.decaf
Error encountered during lexing.
InvalidTokenException(String) - Constructor for exception edu.jmu.decaf.InvalidTokenException
 
inVisit(ASTBinaryExpr) - Method in interface edu.jmu.decaf.ASTVisitor
 
inVisit(ASTBinaryExpr) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
isArray - Variable in class edu.jmu.decaf.ASTVariable
 
isArray - Variable in class edu.jmu.decaf.Symbol
Flag indicating this symbol represents an array
isNextToken(Queue<Token>, Token.Type) - Method in class edu.jmu.decaf.DecafParser
Returns true if and only if the head of the queue is a token of the expected type.
isNextTokenBinOp(Queue<Token>, int) - Method in class edu.jmu.decaf.MyDecafParser
 
isNextTokenKeyword(Queue<Token>, String) - Method in class edu.jmu.decaf.DecafParser
Returns true if and only if the head of the queue is a keyword token with the expected text.
isNextTokenSymbol(Queue<Token>, String) - Method in class edu.jmu.decaf.DecafParser
Returns true if and only if the head of the queue is a symbol token with the expected text.

K

killedVars - Variable in class edu.jmu.decaf.ILOCBasicBlock
 

L

leftChild - Variable in class edu.jmu.decaf.ASTBinaryExpr
 
length - Variable in class edu.jmu.decaf.Symbol
Length of array (for array symbols; should be 1 for others)
lex(String) - Method in class edu.jmu.decaf.DecafLexer
Perform lexical analysis, converting Decaf source code into a stream of Token objects.
lex(File) - Method in class edu.jmu.decaf.DecafLexer
Perform lexical analysis, converting Decaf source code into a stream of Token objects.
lex(InputStream) - Method in class edu.jmu.decaf.DecafLexer
Perform lexical analysis, converting Decaf source code into a stream of Token objects.
lex(BufferedReader, String) - Method in class edu.jmu.decaf.DecafLexer
Perform lexical analysis, converting Decaf source code into a stream of Token objects.
lex(BufferedReader, String) - Method in class edu.jmu.decaf.MyDecafLexer
Perform lexical analysis, converting Decaf source code into a stream of Token objects.
lineNumber - Variable in class edu.jmu.decaf.SourceInfo
 
liveIn - Variable in class edu.jmu.decaf.ILOCBasicBlock
 
liveOut - Variable in class edu.jmu.decaf.ILOCBasicBlock
 
loadInt(int) - Method in class edu.jmu.decaf.ILOCInterpreter
 
LocalRegisterAllocator - Class in edu.jmu.decaf
Performs register allocation for an ILOC program.
LocalRegisterAllocator(int) - Constructor for class edu.jmu.decaf.LocalRegisterAllocator
Initialize register allocator
localSize - Variable in class edu.jmu.decaf.ILOCFunction
Size (in bytes) to allocate on stack for local variables
location - Variable in class edu.jmu.decaf.ASTAssignment
 
location - Variable in class edu.jmu.decaf.Symbol
Memory location information
lookup(String) - Method in class edu.jmu.decaf.SymbolTable
Retrieves symbol information for a given symbol name.
lookupSymbol(ASTNode, String) - Static method in class edu.jmu.decaf.DecafAnalysis
Retrieves symbol information for a given symbol name.

M

main(String[]) - Static method in class edu.jmu.decaf.DecafCompiler
Program entry point.
matchKeyword(Queue<Token>, String) - Method in class edu.jmu.decaf.DecafParser
Match and discard the given keyword from the head of the token queue.
matchSymbol(Queue<Token>, String) - Method in class edu.jmu.decaf.DecafParser
Match and discard the given symbol from the head of the token queue.
MyDecafAnalysis - Class in edu.jmu.decaf
Perform type checking using the Decaf type rules.
MyDecafAnalysis() - Constructor for class edu.jmu.decaf.MyDecafAnalysis
 
MyDecafLexer - Class in edu.jmu.decaf
Concrete Decaf lexer class.
MyDecafLexer() - Constructor for class edu.jmu.decaf.MyDecafLexer
 
MyDecafParser - Class in edu.jmu.decaf
Concrete Decaf parser class.
MyDecafParser() - Constructor for class edu.jmu.decaf.MyDecafParser
 
MyILOCGenerator - Class in edu.jmu.decaf
Concrete ILOC generator class.
MyILOCGenerator() - Constructor for class edu.jmu.decaf.MyILOCGenerator
 
MyLivenessAnalysis - Class in edu.jmu.decaf
Performs liveness analysis on an ILOC program.
MyLivenessAnalysis() - Constructor for class edu.jmu.decaf.MyLivenessAnalysis
 
MyLocalRegisterAllocator - Class in edu.jmu.decaf
 
MyLocalRegisterAllocator(int) - Constructor for class edu.jmu.decaf.MyLocalRegisterAllocator
 

N

name - Variable in class edu.jmu.decaf.ASTFunction
 
name - Variable in class edu.jmu.decaf.ASTFunction.Parameter
 
name - Variable in class edu.jmu.decaf.ASTFunctionCall
 
name - Variable in class edu.jmu.decaf.ASTLocation
 
name - Variable in class edu.jmu.decaf.ASTVariable
 
name - Variable in class edu.jmu.decaf.ASTVoidFunctionCall
 
name - Variable in class edu.jmu.decaf.Symbol
Name in source code
newAnonymousLabel() - Static method in class edu.jmu.decaf.ILOCOperand
Allocate and return a new anonymous jump label
newBasicBlock() - Static method in class edu.jmu.decaf.ILOCBasicBlock
 
newCallLabel(String) - Static method in class edu.jmu.decaf.ILOCOperand
Return an operand for the given call target
newIntConstant(int) - Static method in class edu.jmu.decaf.ILOCOperand
Return an operand for the given integer literal
newline(ASTNode) - Method in class edu.jmu.decaf.PrintDebugTree
 
newline(ASTNode, boolean) - Method in class edu.jmu.decaf.PrintDebugTree
 
newStrConstant(String) - Static method in class edu.jmu.decaf.ILOCOperand
Return an operand for the given string literal
newVirtualReg() - Static method in class edu.jmu.decaf.ILOCOperand
Allocate and return a new virtual register reference
nextID - Static variable in class edu.jmu.decaf.ILOCBasicBlock
 
nextToken(StringBuffer) - Method in class edu.jmu.decaf.DecafLexer
Extract a token from the given buffer.
numPhysicalRegs - Variable in class edu.jmu.decaf.LocalRegisterAllocator
Number of physical registers available for allocation

O

offset - Variable in class edu.jmu.decaf.ILOCFunction.Variable
 
offset(Symbol) - Method in class edu.jmu.decaf.ILOCGenerator
Calculates the offset of a scalar variable reference and returns the adjusted offset in an ILOCOperand.
offset - Variable in class edu.jmu.decaf.Symbol
Memory offset (if needed)
operands - Variable in class edu.jmu.decaf.ILOCInstruction
Instruction operands
operator - Variable in class edu.jmu.decaf.ASTBinaryExpr
 
operator - Variable in class edu.jmu.decaf.ASTUnaryExpr
 
opToString(ASTBinaryExpr.BinOp) - Static method in class edu.jmu.decaf.ASTBinaryExpr
 
opToString(ASTUnaryExpr.UnaryOp) - Static method in class edu.jmu.decaf.ASTUnaryExpr
 

P

Parameter(String, ASTNode.DataType) - Constructor for class edu.jmu.decaf.ASTFunction.Parameter
 
parameters - Variable in class edu.jmu.decaf.ASTFunction
 
paramTypes - Variable in class edu.jmu.decaf.Symbol
Data types of formal parameters (for function symbols, empty for others)
parse(Queue<Token>) - Method in class edu.jmu.decaf.DecafParser
Perform syntax analysis, converting a stream of Token objects into an ASTProgram.
parse(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
Top-level parsing routine.
parseBaseExpr(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
parseBinaryOperator(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
parseBinExpr(Queue<Token>, int) - Method in class edu.jmu.decaf.MyDecafParser
 
parseBlock(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
parseExpression(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
parseFunction(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
parseID(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
parseInt(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
parseLiteral(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
parseNegExpr(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
parseNotExpr(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
parseParameter(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
parseProgram(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
LL(1) parsing routine for the Program non-terminal.
parseStatement(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
parseType(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
parseUnaryOperator(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
parseVariable(Queue<Token>) - Method in class edu.jmu.decaf.MyDecafParser
 
PeepholeOptimizer - Class in edu.jmu.decaf
Performs several basic peephole optimizations on an ILOC program.
PeepholeOptimizer() - Constructor for class edu.jmu.decaf.PeepholeOptimizer
 
pop() - Method in class edu.jmu.decaf.ILOCInterpreter
 
postVisit(ASTFunction) - Method in class edu.jmu.decaf.AllocateSymbols
 
postVisit(ASTProgram) - Method in class edu.jmu.decaf.AllocateSymbols
 
postVisit(ASTProgram) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTFunction) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTVariable) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTBlock) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTAssignment) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTVoidFunctionCall) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTConditional) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTWhileLoop) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTReturn) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTBreak) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTContinue) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTBinaryExpr) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTUnaryExpr) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTFunctionCall) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTLocation) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTLiteral) - Method in interface edu.jmu.decaf.ASTVisitor
 
postVisit(ASTProgram) - Method in class edu.jmu.decaf.BuildSymbolTables
 
postVisit(ASTFunction) - Method in class edu.jmu.decaf.BuildSymbolTables
 
postVisit(ASTBlock) - Method in class edu.jmu.decaf.BuildSymbolTables
 
postVisit(ASTProgram) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTFunction) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTVariable) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTBlock) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTAssignment) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTVoidFunctionCall) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTConditional) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTWhileLoop) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTReturn) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTBreak) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTContinue) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTBinaryExpr) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTUnaryExpr) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTFunctionCall) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTLocation) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTLiteral) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
postVisit(ASTProgram) - Method in class edu.jmu.decaf.ExportTreeDOT
 
postVisit(ASTVariable) - Method in class edu.jmu.decaf.ExportTreeDOT
 
postVisit(ASTFunction) - Method in class edu.jmu.decaf.ExportTreeDOT
 
postVisit(ASTBlock) - Method in class edu.jmu.decaf.ExportTreeDOT
 
postVisit(ASTAssignment) - Method in class edu.jmu.decaf.ExportTreeDOT
 
postVisit(ASTVoidFunctionCall) - Method in class edu.jmu.decaf.ExportTreeDOT
 
postVisit(ASTConditional) - Method in class edu.jmu.decaf.ExportTreeDOT
 
postVisit(ASTWhileLoop) - Method in class edu.jmu.decaf.ExportTreeDOT
 
postVisit(ASTReturn) - Method in class edu.jmu.decaf.ExportTreeDOT
 
postVisit(ASTBinaryExpr) - Method in class edu.jmu.decaf.ExportTreeDOT
 
postVisit(ASTUnaryExpr) - Method in class edu.jmu.decaf.ExportTreeDOT
 
postVisit(ASTFunctionCall) - Method in class edu.jmu.decaf.ExportTreeDOT
 
postVisit(ASTLocation) - Method in class edu.jmu.decaf.ExportTreeDOT
 
postVisit(ASTLiteral) - Method in class edu.jmu.decaf.ExportTreeDOT
 
postVisit(ASTProgram) - Method in class edu.jmu.decaf.ILOCGenerator
Finalize ILOC program.
postVisit(ASTProgram) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
postVisit(ASTVariable) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
postVisit(ASTBlock) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
postVisit(ASTAssignment) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
postVisit(ASTConditional) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
postVisit(ASTWhileLoop) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
postVisit(ASTBreak) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
postVisit(ASTContinue) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
postVisit(ASTReturn) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
postVisit(ASTLocation) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
postVisit(ASTFunctionCall) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
postVisit(ASTVoidFunctionCall) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
postVisit(ASTBinaryExpr) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
postVisit(ASTUnaryExpr) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
postVisit(ASTFunction) - Method in class edu.jmu.decaf.MyILOCGenerator
 
postVisit(ASTBlock) - Method in class edu.jmu.decaf.MyILOCGenerator
 
postVisit(ASTAssignment) - Method in class edu.jmu.decaf.MyILOCGenerator
 
postVisit(ASTVoidFunctionCall) - Method in class edu.jmu.decaf.MyILOCGenerator
 
postVisit(ASTConditional) - Method in class edu.jmu.decaf.MyILOCGenerator
 
postVisit(ASTWhileLoop) - Method in class edu.jmu.decaf.MyILOCGenerator
 
postVisit(ASTBreak) - Method in class edu.jmu.decaf.MyILOCGenerator
 
postVisit(ASTContinue) - Method in class edu.jmu.decaf.MyILOCGenerator
 
postVisit(ASTReturn) - Method in class edu.jmu.decaf.MyILOCGenerator
 
postVisit(ASTBinaryExpr) - Method in class edu.jmu.decaf.MyILOCGenerator
 
postVisit(ASTUnaryExpr) - Method in class edu.jmu.decaf.MyILOCGenerator
 
postVisit(ASTFunctionCall) - Method in class edu.jmu.decaf.MyILOCGenerator
 
postVisit(ASTLocation) - Method in class edu.jmu.decaf.MyILOCGenerator
 
postVisit(ASTLiteral) - Method in class edu.jmu.decaf.MyILOCGenerator
 
preVisit(ASTProgram) - Method in class edu.jmu.decaf.AllocateSymbols
 
preVisit(ASTFunction) - Method in class edu.jmu.decaf.AllocateSymbols
 
preVisit(ASTVariable) - Method in class edu.jmu.decaf.AllocateSymbols
 
preVisit(ASTProgram) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTFunction) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTVariable) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTBlock) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTAssignment) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTVoidFunctionCall) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTConditional) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTWhileLoop) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTReturn) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTBreak) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTContinue) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTBinaryExpr) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTUnaryExpr) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTFunctionCall) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTLocation) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTLiteral) - Method in interface edu.jmu.decaf.ASTVisitor
 
preVisit(ASTProgram) - Method in class edu.jmu.decaf.BuildParentLinks
 
preVisit(ASTFunction) - Method in class edu.jmu.decaf.BuildParentLinks
 
preVisit(ASTBlock) - Method in class edu.jmu.decaf.BuildParentLinks
 
preVisit(ASTAssignment) - Method in class edu.jmu.decaf.BuildParentLinks
 
preVisit(ASTVoidFunctionCall) - Method in class edu.jmu.decaf.BuildParentLinks
 
preVisit(ASTConditional) - Method in class edu.jmu.decaf.BuildParentLinks
 
preVisit(ASTWhileLoop) - Method in class edu.jmu.decaf.BuildParentLinks
 
preVisit(ASTReturn) - Method in class edu.jmu.decaf.BuildParentLinks
 
preVisit(ASTBinaryExpr) - Method in class edu.jmu.decaf.BuildParentLinks
 
preVisit(ASTUnaryExpr) - Method in class edu.jmu.decaf.BuildParentLinks
 
preVisit(ASTFunctionCall) - Method in class edu.jmu.decaf.BuildParentLinks
 
preVisit(ASTLocation) - Method in class edu.jmu.decaf.BuildParentLinks
 
preVisit(ASTProgram) - Method in class edu.jmu.decaf.BuildSymbolTables
 
preVisit(ASTFunction) - Method in class edu.jmu.decaf.BuildSymbolTables
 
preVisit(ASTBlock) - Method in class edu.jmu.decaf.BuildSymbolTables
 
preVisit(ASTVariable) - Method in class edu.jmu.decaf.BuildSymbolTables
 
preVisit(ASTProgram) - Method in class edu.jmu.decaf.CalculateNodeDepths
 
preVisit(ASTProgram) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTFunction) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTVariable) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTBlock) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTAssignment) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTVoidFunctionCall) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTConditional) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTWhileLoop) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTReturn) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTBreak) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTContinue) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTBinaryExpr) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTUnaryExpr) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTFunctionCall) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTLocation) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTLiteral) - Method in class edu.jmu.decaf.DefaultASTVisitor
 
preVisit(ASTProgram) - Method in class edu.jmu.decaf.ExportTreeDOT
 
preVisit(ASTProgram) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
preVisit(ASTFunction) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
preVisit(ASTWhileLoop) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
preVisit(ASTLocation) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
preVisit(ASTLiteral) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
preVisit(ASTFunctionCall) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
preVisit(ASTBinaryExpr) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
preVisit(ASTUnaryExpr) - Method in class edu.jmu.decaf.MyDecafAnalysis
 
preVisit(ASTFunction) - Method in class edu.jmu.decaf.MyILOCGenerator
 
preVisit(ASTWhileLoop) - Method in class edu.jmu.decaf.MyILOCGenerator
 
preVisit(ASTProgram) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTFunction) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTVariable) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTBlock) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTAssignment) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTVoidFunctionCall) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTConditional) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTWhileLoop) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTReturn) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTBreak) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTContinue) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTBinaryExpr) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTUnaryExpr) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTFunctionCall) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTLocation) - Method in class edu.jmu.decaf.PrintDebugTree
 
preVisit(ASTLiteral) - Method in class edu.jmu.decaf.PrintDebugTree
 
PrintDebugSymbolTables - Class in edu.jmu.decaf
AST pre-order visitor; prints each node with a symbol table to standard output.
PrintDebugSymbolTables() - Constructor for class edu.jmu.decaf.PrintDebugSymbolTables
 
PrintDebugSymbolTables(PrintStream) - Constructor for class edu.jmu.decaf.PrintDebugSymbolTables
 
PrintDebugTree - Class in edu.jmu.decaf
AST pre-order visitor; prints each node to standard output.
PrintDebugTree() - Constructor for class edu.jmu.decaf.PrintDebugTree
 
PrintDebugTree(PrintStream) - Constructor for class edu.jmu.decaf.PrintDebugTree
 
printLink(ASTNode, ASTNode) - Method in class edu.jmu.decaf.ExportTreeDOT
 
printNodeLabel(ASTNode, String) - Method in class edu.jmu.decaf.ExportTreeDOT
 
printNodeLabel(ASTNode, String, String) - Method in class edu.jmu.decaf.ExportTreeDOT
 
process(ILOCProgram) - Method in class edu.jmu.decaf.ExportControlFlowDOT
 
process(ILOCBasicBlock) - Method in class edu.jmu.decaf.ExportControlFlowDOT
 
process(ILOCProgram) - Method in class edu.jmu.decaf.GenerateX86
 
process(ILOCProgram) - Method in class edu.jmu.decaf.GenerateY86
 
process(ILOCProgram) - Method in class edu.jmu.decaf.ILOCInterpreter
 
process(ILOCProgram) - Method in interface edu.jmu.decaf.ILOCProcessor
Perform analysis and/or modification on the given ILOC program
process(ILOCProgram) - Method in class edu.jmu.decaf.LocalRegisterAllocator
Perform register allocation on each function.
process(ILOCBasicBlock) - Method in class edu.jmu.decaf.LocalRegisterAllocator
Perform register allocation for a basic block and all basic blocks reachable from it.
process(ILOCProgram) - Method in class edu.jmu.decaf.MyLivenessAnalysis
Perform liveness analysis on each function.
process(ILOCProgram) - Method in class edu.jmu.decaf.PeepholeOptimizer
 
process(ILOCProgram) - Method in class edu.jmu.decaf.RenumberRegistersAndLabels
Renumber registers and jump labels
processOperandSet(Set<ILOCOperand>, StringBuffer) - Method in class edu.jmu.decaf.ExportControlFlowDOT
 
push(int) - Method in class edu.jmu.decaf.ILOCInterpreter
 

R

REG_BP - Static variable in class edu.jmu.decaf.ILOCOperand
Base pointer register (ebp/rbp on x86)
REG_RET - Static variable in class edu.jmu.decaf.ILOCOperand
Function return value register (eax/rax on x86)
REG_SP - Static variable in class edu.jmu.decaf.ILOCOperand
Base pointer register (ebp/rbp on x86)
removeChainedJump(ILOCFunction) - Method in class edu.jmu.decaf.PeepholeOptimizer
Replaces instructions of the form: jmp lX [...] lX: jmp lY with jmp lY [...] lX: jmp lY
removeEscapeCodes(String) - Static method in class edu.jmu.decaf.ASTLiteral
Remove escape codes from string literals and replace them with the corresponding special character (quotes, newlines, or tabs)
removeIdentityAddAndMult(ILOCFunction) - Method in class edu.jmu.decaf.PeepholeOptimizer
Replaces instructions of the form: addI rX, 0 => rY with i2i rX => rY and Replaces instructions of the form: multI rX, 1 => rY with i2i rX => rY Removes instructions of the form: addI rX, 0 => rX Removes instructions of the form: multI rX, 1 => rX
removeUselessCopies(ILOCFunction) - Method in class edu.jmu.decaf.PeepholeOptimizer
Removes instructions of the form: i2i rX -> rX
RenumberRegistersAndLabels - Class in edu.jmu.decaf
Simple ILOC analysis pass that renumbers all the virtual register and anonymous jump label IDs.
RenumberRegistersAndLabels() - Constructor for class edu.jmu.decaf.RenumberRegistersAndLabels
 
replaceOneLineJumps(ILOCFunction) - Method in class edu.jmu.decaf.PeepholeOptimizer
Removes jump in code of the form: jmp lX lX: [...]
resetErrors() - Static method in class edu.jmu.decaf.StaticAnalysis
Clear all existing errors
returnType - Variable in class edu.jmu.decaf.ASTFunction
 
rightChild - Variable in class edu.jmu.decaf.ASTBinaryExpr
 
run() - Method in class edu.jmu.decaf.DecafCompiler
Run all phases of the compiler.

S

serialVersionUID - Static variable in exception edu.jmu.decaf.InvalidInstructionException
 
serialVersionUID - Static variable in exception edu.jmu.decaf.InvalidProgramException
 
serialVersionUID - Static variable in exception edu.jmu.decaf.InvalidSyntaxException
 
serialVersionUID - Static variable in exception edu.jmu.decaf.InvalidTokenException
 
setBool(ILOCOperand, int) - Method in class edu.jmu.decaf.ILOCInterpreter
 
setBool(ILOCOperand, boolean) - Method in class edu.jmu.decaf.ILOCInterpreter
 
setDepth(int) - Method in class edu.jmu.decaf.ASTNode
Initialize the tree depth marker
setInstructions(List<ILOCInstruction>) - Method in class edu.jmu.decaf.ILOCFunction
Replace all instructions with a new sequence.
setInt(ILOCOperand, int) - Method in class edu.jmu.decaf.ILOCInterpreter
 
setParent(ASTNode) - Method in class edu.jmu.decaf.ASTNode
Initialize the uptree parent pointer
setSourceInfo(SourceInfo) - Method in class edu.jmu.decaf.ASTNode
Initialize source code information
setTempReg(ASTNode, ILOCOperand) - Method in class edu.jmu.decaf.ILOCGenerator
Sets the temporary ILOC virtual register associated with the result of evaluating a node in the AST.
setType(ASTNode.DataType) - Method in class edu.jmu.decaf.ASTNode
Initialize type
size() - Method in class edu.jmu.decaf.SymbolTable
Get accessible symbol count
source - Variable in class edu.jmu.decaf.Token
Token source info (filename and line number)
SourceInfo - Class in edu.jmu.decaf
Stores information about a location in a program's source code.
SourceInfo(String) - Constructor for class edu.jmu.decaf.SourceInfo
 
SourceInfo(String, int) - Constructor for class edu.jmu.decaf.SourceInfo
 
sources - Variable in class edu.jmu.decaf.ILOCBasicBlock
 
statements - Variable in class edu.jmu.decaf.ASTBlock
 
StaticAnalysis - Class in edu.jmu.decaf
Provides a mechanism for aggregating InvalidProgramException errors from any AST static analysis pass.
StaticAnalysis() - Constructor for class edu.jmu.decaf.StaticAnalysis
 
staticSize - Variable in class edu.jmu.decaf.ILOCProgram
Size (in bytes) to allocate in static region for global variables
staticSymbols - Variable in class edu.jmu.decaf.ILOCProgram
Static symbol table (global variables and functions)
storeInt(int, int) - Method in class edu.jmu.decaf.ILOCInterpreter
 
storeLoadOptimize(ILOCFunction) - Method in class edu.jmu.decaf.PeepholeOptimizer
(CASE 1) Replaces code of the form: storeAI rX -> bp + offset load bp + offset -> rY with storeAI rX -> bp + offset i2i rX -> rY (CASE 2) Replaces code of the form: storeAI rX => BP+offset load BP+offset => rX with storeAI rX => BP+offset
strConstant - Variable in class edu.jmu.decaf.ILOCOperand
String constant (for call label and string constant operands)
Symbol - Class in edu.jmu.decaf
Single Decaf symbol.
Symbol(String, ASTNode.DataType) - Constructor for class edu.jmu.decaf.Symbol
Create a new scalar symbol
Symbol(String, ASTNode.DataType, boolean, int) - Constructor for class edu.jmu.decaf.Symbol
Create a new array symbol
Symbol(String, ASTNode.DataType, List<ASTNode.DataType>) - Constructor for class edu.jmu.decaf.Symbol
Create a new function symbol
Symbol.MemLoc - Enum in edu.jmu.decaf
Memory access locations.
SymbolTable - Class in edu.jmu.decaf
Stores name-to-symbol-info mappings for a single lexical scope.
SymbolTable() - Constructor for class edu.jmu.decaf.SymbolTable
Create a new, empty symbol table with no parent table.
SymbolTable(SymbolTable) - Constructor for class edu.jmu.decaf.SymbolTable
Create a new, empty symbol table.

T

targets - Variable in class edu.jmu.decaf.ILOCBasicBlock
 
temp(List<ILOCBasicBlock>) - Method in class edu.jmu.decaf.ILOCFunction
 
text - Variable in class edu.jmu.decaf.Token
Token text--raw data from the source file
Token - Class in edu.jmu.decaf
Data structure that represents a single token of a Decaf program.
Token(Token.Type) - Constructor for class edu.jmu.decaf.Token
 
Token(Token.Type, String) - Constructor for class edu.jmu.decaf.Token
 
Token(Token.Type, String, SourceInfo) - Constructor for class edu.jmu.decaf.Token
 
Token.Type - Enum in edu.jmu.decaf
Token type.
toString() - Method in class edu.jmu.decaf.ASTBinaryExpr
 
toString() - Method in class edu.jmu.decaf.ASTFunctionCall
 
toString() - Method in class edu.jmu.decaf.ASTLiteral
 
toString() - Method in class edu.jmu.decaf.ASTLocation
 
toString() - Method in class edu.jmu.decaf.ASTUnaryExpr
 
toString() - Method in class edu.jmu.decaf.ILOCFunction
Builds a standard string-based representation of an ILOC function
toString() - Method in class edu.jmu.decaf.ILOCInstruction
Builds a standardized string representation of an ILOC instruction
toString(boolean) - Method in class edu.jmu.decaf.ILOCInstruction
Builds a standardized string representation of an ILOC instruction
toString() - Method in class edu.jmu.decaf.ILOCOperand
Builds a string representing the operand
toString() - Method in class edu.jmu.decaf.ILOCProgram
Builds a standard string-based representation of an ILOC program
toString() - Method in class edu.jmu.decaf.SourceInfo
 
toString() - Method in class edu.jmu.decaf.Symbol
Simplified string representation
toString() - Method in class edu.jmu.decaf.SymbolTable
Builds a nicely-formatted list of new symbols declared from this scope.
toString(int) - Method in class edu.jmu.decaf.SymbolTable
Builds a nicely-formatted list of new symbols declared in this scope.
toString() - Method in class edu.jmu.decaf.Token
Returns a nicely-formatted representation suitable for debug printing
totalSize - Variable in class edu.jmu.decaf.Symbol
Size of overall structure (in bytes); for scalar variables, elementSize == totalSize
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTAssignment
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTBinaryExpr
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTBlock
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTBreak
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTConditional
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTContinue
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTFunction
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTFunctionCall
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTLiteral
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTLocation
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTNode
Generic traversal method for the visitor pattern.
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTProgram
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTReturn
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTUnaryExpr
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTVariable
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTVoidFunctionCall
 
traverse(ASTVisitor) - Method in class edu.jmu.decaf.ASTWhileLoop
 
type - Variable in class edu.jmu.decaf.ASTFunction.Parameter
 
type - Variable in class edu.jmu.decaf.ASTLiteral
 
type - Variable in class edu.jmu.decaf.ASTVariable
 
type - Variable in class edu.jmu.decaf.ILOCOperand
Operand type
type - Variable in class edu.jmu.decaf.Symbol
Data type
type - Variable in class edu.jmu.decaf.Token
Token type
typeToString(ASTNode.DataType) - Static method in class edu.jmu.decaf.ASTNode
Returns a human-readable version of Decaf data types.
typeToString(Token.Type) - Static method in class edu.jmu.decaf.Token
 

U

upwardExposedVars - Variable in class edu.jmu.decaf.ILOCBasicBlock
 

V

value - Variable in class edu.jmu.decaf.ASTAssignment
 
value - Variable in class edu.jmu.decaf.ASTLiteral
 
value - Variable in class edu.jmu.decaf.ASTReturn
 
valueOf(String) - Static method in enum edu.jmu.decaf.ASTBinaryExpr.BinOp
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum edu.jmu.decaf.ASTNode.DataType
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum edu.jmu.decaf.ASTUnaryExpr.UnaryOp
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum edu.jmu.decaf.ILOCInstruction.Form
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum edu.jmu.decaf.ILOCOperand.Type
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum edu.jmu.decaf.Symbol.MemLoc
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum edu.jmu.decaf.Token.Type
Returns the enum constant of this type with the specified name.
values() - Static method in enum edu.jmu.decaf.ASTBinaryExpr.BinOp
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum edu.jmu.decaf.ASTNode.DataType
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum edu.jmu.decaf.ASTUnaryExpr.UnaryOp
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum edu.jmu.decaf.ILOCInstruction.Form
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum edu.jmu.decaf.ILOCOperand.Type
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum edu.jmu.decaf.Symbol.MemLoc
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum edu.jmu.decaf.Token.Type
Returns an array containing the constants of this enum type, in the order they are declared.
Variable(ILOCOperand, ILOCOperand) - Constructor for class edu.jmu.decaf.ILOCFunction.Variable
 
variableName - Variable in class edu.jmu.decaf.ILOCInstruction
Debug information for data flow analysis
variables - Variable in class edu.jmu.decaf.ASTBlock
 
variables - Variable in class edu.jmu.decaf.ASTProgram
 

W

WORD_SIZE - Static variable in class edu.jmu.decaf.Symbol
Word size (used for some data types and addresses)

Z

ZERO - Static variable in class edu.jmu.decaf.ILOCOperand
Special constant (zero)
A B C D E F G H I K L M N O P R S T U V W Z 
Skip navigation links

Copyright © 2019. All rights reserved.