See: Description
| Interface | Description |
|---|---|
| Converter |
A Converter encapusates any (possibly none) code necessary to perform a cast
operation.
|
| IDefn |
The IDefn type is used to implement definitions of those things (local
variables, formal arguments, types) that are named in some context (or
scope).
|
| JavaCCParserConstants | |
| JLhs |
The type of any expression that can appear on the lhs of an assignment
statement, i.e., JVariable, JFieldSelection, JArrayExpression.
|
| JMember |
An interface supported by all class (or later, interface) members.
|
| JTypeDecl |
An interface supported by class (or later, interface) declarations.
|
| Class | Description |
|---|---|
| AmbiguousName |
Ambiguous names are meant to deal with snippets like
|
| ArrayTypeName |
The (temporary) representation of an array's type.
|
| Boxing |
Boxing requires invoking the appropriate conversion method from the (Java)
API.
|
| ByteClassLoader |
A class loader to be able to load a class from a byte stream.
|
| CharReader |
A buffered character reader.
|
| CLAbsorber |
CLAbsorber is for reading a Java class into an in-memory CLFile
representation and printing it out to STDOUT in a format similar to that of
javap.
|
| CLAnnotation |
Representation of annotation structure (JVM Spec Section 4.8.15).
|
| CLAnnotationDefaultAttribute |
Representation of AnnotationDefault_attribute structure (JVM Spec Section
4.8.2).
|
| CLArithmeticInstruction |
Representation for ARITHMETIC1 and ARITHMETIC2 instructions.
|
| CLArrayInstruction |
Representation for ARRAY1, ARRAY2 and ARRAY3 instructions.
|
| ClassContext |
Represents the context (scope, environment, symbol table) for a type, eg a
class, in j--.
|
| CLAttributeInfo |
Representation of attribute_info structure (JVM Spec Section 4.8).
|
| CLBitInstruction |
Representation for BIT instructions.
|
| CLBranchStack |
This class is used for control flow analysis to compute maximum depth of
operand stack for a method.
|
| CLBranchTarget |
Instances of this class form the elements of the CLBranchStack which is used
for control flow analysis to compute maximum depth of operand stack for a
method.
|
| CLCodeAttribute |
Representation of Code_attribute structure (JVM Spec Section 4.8.2).
|
| CLComparisonInstruction |
Representation for COMPARISON instructions.
|
| CLConstantClassInfo |
Representation of CONSTANT_Class_info structure (JVM Spec Section 4.5.1).
|
| CLConstantDoubleInfo |
Representation of CONSTANT_Double_info structure (JVM Spec Section 4.5.5).
|
| CLConstantFieldRefInfo |
Representation of CONSTANT_Fieldref_info structure (JVM Spec Section 4.5.2).
|
| CLConstantFloatInfo |
Representation of CONSTANT_Float_info structure (JVM Spec Section 4.5.4).
|
| CLConstantIntegerInfo |
Representation of CONSTANT_Integer_info structure (JVM Spec Section 4.5.4).
|
| CLConstantInterfaceMethodRefInfo |
Representation of CONSTANT_InterfaceMethodref_info structure (JVM Spec
Section 4.5.2).
|
| CLConstantLongInfo |
Representation of CONSTANT_Long_info structure (JVM Spec Section 4.5.5).
|
| CLConstantMemberRefInfo |
Abstract super class of CONSTANT_Fieldref_info, CONSTANT_Methodref_info,
CONSTANT_InterfaceMethodref_info structures (JVM Spec Section 4.5.2).
|
| CLConstantMethodRefInfo |
Representation of CONSTANT_Methodref_info structure (JVM Spec Section 4.5.2).
|
| CLConstantNameAndTypeInfo |
Representation of CONSTANT_NameAndType_info structure (JVM Spec Section
4.5.6).
|
| CLConstantPool |
Representation of a class' constant_pool table (JVM Spec Section 4.5).
|
| CLConstants |
Constants used within CL*.java files.
|
| CLConstantStringInfo |
Representation of CONSTANT_String_info structure (JVM Spec Section 4.5.3).
|
| CLConstantUtf8Info |
Representation of CONSTANT_Utf8_info structure (JVM Spec Section 4.5.7).
|
| CLConstantValueAttribute |
Representation of ConstantValue_attribute structure (JVM Spec Section 4.8.2).
|
| CLConversionInstruction |
Representation for CONVERSION instructions.
|
| CLCPInfo |
Representation of cp_info structure (JVM Spec Section 4.5).
|
| CLDeprecatedAttribute |
Representation of Deprecated_attribute structure (JVM Spec Section 4.8.14).
|
| CLElementValue |
Representation of element_value union (JVM Spec Section 4.8.15.1).
|
| CLElementValuePair |
Representation of the element_value_pairs table entry (JVM Spec Section
4.8.15).
|
| CLEmitter |
This class provides a high level interface for creating (in-memory and file
based) representation of Java classes.
|
| CLEnclosingMethodAttribute |
Representation of EnclosingMethod_attribute structure (JVM Spec Section
4.8.6).
|
| CLException |
Representation of an exception handler.
|
| CLExceptionInfo |
Representation of exception_table entry structure (JVM Spec Section 4.8.3).
|
| CLExceptionsAttribute |
Representation of Exceptions_attribute structure (JVM Spec Section 4.8.4).
|
| CLFieldInfo |
Representation of field_info structure (JVM Spec Section 4.6).
|
| CLFieldInstruction |
Representation for FIELD instructions.
|
| CLFile |
Representation of the ClassFile structure (JVM Spec Section 4.2).
|
| CLFlowControlInstruction |
Representation for FLOW_CONTROL1, FLOW_CONTROL2, FLOW_CONTROL3 and
FLOW_CONTROL4 instructions.
|
| CLInnerClassesAttribute |
Representation of InnerClasses_attribute structure (JVM Spec Section 4.8.5).
|
| CLInnerClassInfo |
Representation of classes table entry structure (JVM Spec Section 4.8.5).
|
| CLInputStream |
Inherits from java.io.DataInputStream and provides an extra function for
reading unsigned int from the input stream, which is required for reading
Java class files.
|
| CLInsInfo |
This class stores static information about a JVM instruction.
|
| CLInstruction |
Representation of a JVM instruction.
|
| CLLineNumberInfo |
Representation of line_number_table entry structure (JVM Spec Section
4.8.11).
|
| CLLineNumberTableAttribute |
Representation of LineNumberTable_attribute structure (JVM Spec Section
4.8.11).
|
| CLLoadStoreInstruction |
Representation for LOAD_STORE1, LOAD_STORE2, LOAD_STORE3 and LOAD_STORE4
instructions.
|
| CLLocalVariableInfo |
Representation of local_variable_table entry structure (JVM Spec Section
4.8.12).
|
| CLLocalVariableTableAttribute |
Representation of LocalVariableTable_attribute structure (JVM Spec Section
4.8.12).
|
| CLLocalVariableTypeInfo |
Representation of local_variable_type_table entry structure (JVM Spec Section
4.8.13).
|
| CLLocalVariableTypeTableAttribute |
Representation of LocalVariableTypeTable_attribute structure (JVM Spec
Section 4.8.12).
|
| CLMemberInfo |
Abstraction of field_info and method_info structures (JVM Spec Section 4.6,
4.7).
|
| CLMethodInfo |
Representation of method_info structure (JVM Spec Section 4.7).
|
| CLMethodInstruction |
Representation for METHOD1 and METHOD2 instructions.
|
| CLMiscInstruction |
Representation for MISC instructions.
|
| CLObjectInstruction |
Representation for OBJECT instructions.
|
| CLOutputStream |
Inherits from java.out.DataOutputStream and provides an extra function for
writing unsigned int to the output stream, which is required for writing Java
class files.
|
| CLParameterAnnotationInfo |
Representation of parameter_annotations_table entry structure (JVM Spec
Section 4.8.17).
|
| CLPath |
This class can be used to locate and load system, extension, and user-defined
class files from directories and zip (jar) files.
|
| CLRuntimeInvisibleAnnotationsAttribute |
Representation of RuntimeInvisibleAnnotations_attribute structure (JVM Spec
Section 4.8.16).
|
| CLRuntimeInvisibleParameterAnnotationsAttribute |
Representation of RuntimeInvisibleParameterAnnotations_attribute structure
(JVM Spec Section 4.8.18).
|
| CLRuntimeVisibleAnnotationsAttribute |
Representation of RuntimeVisibleAnnotations_attribute structure (JVM Spec
Section 4.8.15).
|
| CLRuntimeVisibleParameterAnnotationsAttribute |
Representation of RuntimeVisibleParameterAnnotations_attribute structure (JVM
Spec Section 4.8.17).
|
| CLSignatureAttribute |
Representation of Signature_attribute structure (JVM Spec Section 4.8.8).
|
| CLSourceDebugExtensionAttribute |
Representation of SourceDebugExtension_attribute structure (JVM Spec Section
4.8.10).
|
| CLSourceFileAttribute |
Representation of SourceFile_attribute structure (JVM Spec Section 4.8.9).
|
| CLStackInstruction |
Representation for STACK instructions.
|
| CLSyntheticAttribute |
Representation of Synthetic_attribute structure (JVM Spec Section 4.8.7).
|
| CompilationUnitContext |
The compilation unit context is always the outermost context, and is where
imported types and locally defined types (classes) are declared.
|
| Constructor |
A Constructor knows its JVM descriptor.
|
| Context |
A Context encapsulates the environment in which an AST is analyzed.
|
| Conversions |
A 2-D table of conversions, from one type to another.
|
| Field |
A Field knows its type.
|
| I2C |
Converting from an int to a char requires an I2C instruction.
|
| Identity |
The identity conversion requires no run-time code.
|
| JArrayExpression |
The AST for an array indexing operation.
|
| JArrayInitializer |
The AST node for an array initializer.
|
| JAssignment |
The AST node for an assignment statement.
|
| JAssignOp |
The AST node for an assignment (=) expression.
|
| JAST |
The abstract superclass of all nodes in the abstract syntax tree (AST).
|
| JavaCCMain |
Driver class for j-- compiler using JavaCC front-end.
|
| JavaCCParser |
Parser generated by JavaCC.
|
| JavaCCParser.JJCalls | |
| JavaCCParserTokenManager | |
| JBinaryExpression |
The AST node for a binary expression.
|
| JBlock |
The AST node for a block, which delimits a nested level of scope.
|
| JBooleanBinaryExpression |
Most binary expressions that return booleans can be recognized by their
syntax.
|
| JCastOp |
The AST for an cast expression, which has both a cast (a type) and the
expression to be cast.
|
| JClassDeclaration |
A class declaration has a list of modifiers, a name, a super class and a
class block; it distinguishes between instance fields and static (class)
fields for initialization, and it defines a type.
|
| JComparison |
The AST node for a comparison expression.
|
| JCompilationUnit |
The abstract syntax tree (AST) node representing a compilation unit, and so
the root of the AST.
|
| JConstructorDeclaration |
The AST node for a constructor declaration.
|
| JEmptyStatement |
The (dummy) AST node for representing the empty statement.
|
| JEqualOp |
The AST node for an equality (==) expression.
|
| JExpression |
The AST node for an expression.
|
| JFieldDeclaration |
The AST node for a field declaration.
|
| JFieldSelection |
The AST node for a field selection operation.
|
| JFormalParameter |
The AST node for a formal parameter declaration.
|
| JGreaterThanOp |
The AST node for a greater-than (>) expression.
|
| JIfStatement |
The AST node for an if-statement.
|
| JInstanceOfOp |
The AST node for an instanceof expression, having two
arguments: an expression and a reference type.
|
| JLessEqualOp |
The AST node for a less-than-or-equal-to (<=) expression.
|
| JLiteralChar |
The AST node for a char literal.
|
| JLiteralFalse |
The AST node for the boolean "false" literal.
|
| JLiteralInt |
The AST node for an int literal.
|
| JLiteralNull |
The AST node for the null literal.
|
| JLiteralString |
The AST node for a string literal.
|
| JLiteralTrue |
The AST node for the boolean "true" literal.
|
| JLogicalAndOp |
The AST node for a logical AND (&&) expression.
|
| JLogicalNotOp |
The AST node for a logical NOT (!) expression.
|
| JMessageExpression |
The AST node for a message expression that has a target, optionally an
ambiguous part, a message name, and zero or more actual arguments.
|
| JMethodDeclaration |
The AST node for a method declaration.
|
| JMultiplyOp |
The AST node for a multiplication (*) expression.
|
| JNegateOp |
The AST node for a unary negation (-) expression.
|
| JNewArrayOp |
The AST node for a "new" array operation.
|
| JNewOp |
The AST node for a "new" expression.
|
| JPlusAssignOp |
The AST node for a += expression.
|
| JPlusOp |
The AST node for a plus (+) expression.
|
| JPostDecrementOp |
The AST node for an expr--.
|
| JPreIncrementOp |
The AST node for a ++expr expression.
|
| JReturnStatement |
The AST node for a return-statement.
|
| JStatement |
The AST node for a statement (includes expressions).
|
| JStatementExpression |
The AST node for an expression that appears as a statement.
|
| JStringConcatenationOp |
The AST node for a string concatenation operation.
|
| JSubtractOp |
The AST node for a subtraction (-) expression.
|
| JSuper |
The AST node for a "super" expression.
|
| JSuperConstruction |
The AST node for a super(...) constructor.
|
| JThis |
The AST for a "this" expression.
|
| JThisConstruction |
The AST node for a this(...) constructor.
|
| JUnaryExpression |
The AST node for a unary expression.
|
| JVariable |
The AST node for an identifier used as a primary expression.
|
| JVariableDeclaration |
The AST node for a local variable declaration.
|
| JVariableDeclarator |
The AST node for a variable declarator, which declares a name, its type and
(possibly) provides an initialization.
|
| JWhileStatement |
The AST node for a while-statement.
|
| JWildExpression |
The AST node for a "wild" expression.
|
| LocalContext |
A local context is a context (scope) in which local variables (including
formal parameters) can be declared.
|
| LocalVariableDefn |
The definition for a local variable (including formal parameters).
|
| LookaheadScanner |
A lexical analyzer for j-- that interfaces with the hand-written parser
(Parser.java).
|
| Main |
Driver class for j-- compiler using hand-written front-end.
|
| Member |
A wrapper for members (eg Fields, Methods, Constructors) in the Java API.
|
| Method |
A Method knows its descriptor (its signature in JVM format), and its return
type.
|
| MethodContext |
A method context is where formal parameters are declared.
|
| NarrowReference |
A narrowing conversion on a reference type requires a run-time check on the
type.
|
| NBasicBlock |
Representation of a block within a control flow graph.
|
| NControlFlowGraph |
Representation of a control flow graph (cfg) for a method.
|
| NEmitter |
A class for generating native SPIM code.
|
| NGraphRegisterAllocator |
Implements register allocation using graph coloring algorithm.
|
| NHIRALoad |
HIR instruction representing JVM array load instructions.
|
| NHIRArithmetic |
HIR instruction corresponding to the JVM arithmetic instructions.
|
| NHIRAStore |
HIR instruction representing JVM array store instructions.
|
| NHIRConditionalJump |
HIR instruction representing an conditional jump instructions in JVM.
|
| NHIRGetField |
HIR instruction representing JVM (get) field instructions.
|
| NHIRGoto |
HIR instruction representing an unconditional jump instruction in JVM.
|
| NHIRInstruction |
High-level intermediate representation (HIR) of a JVM instruction.
|
| NHIRIntConstant |
HIR instruction corresponding to the JVM instructions representing integer
constants.
|
| NHIRInvoke |
HIR instruction representing method invocation instructions in JVM.
|
| NHIRLoadLocal |
HIR instruction representing a formal parameter.
|
| NHIRLocal |
HIR instruction representing a local (not formal) variable.
|
| NHIRNewArray |
HIR instruction representing JVM array creation instructions.
|
| NHIRPhiFunction |
HIR instruction representing phi functions.
|
| NHIRPutField |
HIR instruction representing JVM (put) field instructions.
|
| NHIRReturn |
HIR instruction representing a JVM return instruction.
|
| NHIRStringConstant |
HIR instruction corresponding to the JVM instructions representing string
constants.
|
| NInterval |
A lifetime interval, recording the interval of LIR code for which the
corresponding virtual register contains a useful value.
|
| NLinearRegisterAllocator |
Implements the Linear Scan register allocation algorithm.
|
| NLIRALoad |
LIR instruction representing JVM array load instructions.
|
| NLIRArithmetic |
LIR instruction corresponding to the JVM arithmetic instructions.
|
| NLIRAStore |
LIR instruction representing JVM array store instructions.
|
| NLIRConditionalJump |
LIR instruction representing an conditional jump instructions in JVM.
|
| NLIRGetField |
LIR instruction representing JVM (get) field instructions.
|
| NLIRGoto |
LIR instruction representing an unconditional jump instruction in JVM.
|
| NLIRInstruction |
Low-level intermediate representation (LIR) of a JVM instruction.
|
| NLIRIntConstant |
LIR instruction corresponding to the JVM instructions representing integer
constants.
|
| NLIRInvoke |
LIR instruction representing method invocation instructions in JVM.
|
| NLIRLoad |
LIR instruction representing a load from memory to register.
|
| NLIRLoadLocal |
LIR instruction representing a formal parameter.
|
| NLIRMove |
LIR move instruction.
|
| NLIRNewArray |
LIR instruction representing JVM array creation instructions.
|
| NLIRPhiFunction |
LIR instruction representing phi functions.
|
| NLIRPutField |
LIR instruction representing JVM (put) field instructions.
|
| NLIRReturn |
HIR instruction representing a JVM return instruction.
|
| NLIRStore |
LIR instruction representing a store from a register to memory.
|
| NLIRStringConstant |
LIR instruction corresponding to the JVM instructions representing string
constants.
|
| NNaiveRegisterAllocator |
Implemets a naive register allocation method.
|
| NPhysicalRegister |
An abstraction for a physical (SPIM) register.
|
| NRange |
A liveness range (for an interval).
|
| NRegister |
An abstraction for a (virtual or physical) register.
|
| NRegisterAllocator |
A register allocator maps virtual registers (from LIR code) to physical
registers on the target machine.
|
| NTuple |
A tuple representation of a JVM instruction.
|
| NVirtualRegister |
An abstraction for a virtual register.
|
| Parser |
A recursive descent parser that, given a lexical analyzer (a
LookaheadScanner), parses a Java compilation unit (program file), taking
tokens from the LookaheadScanner, and produces an abstract syntax tree (AST)
for it.
|
| PrettyPrinter |
A utility class that allows pretty (indented) printing to STDOUT.
|
| Scanner |
A lexical analyzer for j--, that has no backtracking mechanism.
|
| SimpleCharStream |
An implementation of interface CharStream, where the stream is assumed to
contain only ASCII characters (without unicode processing).
|
| Token |
Describes the input token stream.
|
| TokenInfo |
A representation of tokens returned by the lexical analyzer method,
getNextToken().
|
| Type |
For representing j-- types.
|
| TypeName |
Any reference type that can be denoted as a (possibly qualified) identifier.
|
| TypeNameDefn |
A definition of a type name.
|
| UnBoxing |
Unboxing requires invoking the appropriate conversion method from the (Java)
API.
|
| Util |
This class defines helper functions.
|
| Enum | Description |
|---|---|
| CLConstants.Category |
We classify the JVM instructions into the following categories.
|
| InstructionType |
The types of possible uses.
|
| OffsetFrom |
The types of stack pointers.
|
| TokenKind |
An enum of token kinds.
|
| Exception | Description |
|---|---|
| ParseException |
This exception is thrown when parse errors are encountered.
|
| Error | Description |
|---|---|
| TokenMgrError |