Package edu.cmu.cs.crystal.tac.model

The interfaces for the three-address code (TAC) instructions and variables.

See:
          Description

Interface Summary
ArrayInitInstruction x = { y1, ..., yn }.
AssignmentInstruction Abstract x = ?.
BinaryOperation x = y binop z, representing all binary operations.
CastInstruction x = (T) y.
ConstructorCallInstruction x(y1, ..., yn), where x is "this" or "super".
CopyInstruction x = y.
DotClassInstruction x = T.class.
EnhancedForConditionInstruction Instruction representing the "has next" test at the top of a Java 5 enhanced for loop.
InstanceofInstruction x = y instanceof T.
InvocationInstruction Abstract x = call(z1, ..., zn).
IVariableVisitor<T>  
LoadArrayInstruction x = y[z].
LoadFieldInstruction x = y.f, where f is a field.
LoadInstruction Marker interface for loads.
LoadLiteralInstruction x = l, an assignment of a literal value to a variable.
MethodCallInstruction x = y.m(z1, ..., zn), where m is a method and y is possibly a type variable, in the case of a static method call.
NewArrayInstruction x = new T[y1]...[yn] or x = new T[]...[] = z.
NewObjectInstruction x = new C(z1, ..., zn), including for anonymous inner classes.
OneOperandInstruction x = f(y), i.e., the result of a one-operand instruction is somehow derived from a single operand.
ReturnInstruction return x, the return of a value.
SourceVariableDeclaration T x.
SourceVariableReadInstruction This instruction indicates reading a variable that appears in the source program, i.e.
StoreArrayInstruction x[y] = z.
StoreFieldInstruction x.f = y, where f is a field.
StoreInstruction This interface represents a store, i.e., a write into memory from a source.
TACArrayAccess x[y]
TACFieldAccess x.f, i.e., an access to a field.
TACInstruction Abstract base class for 3-Address-Code instructions built from Eclipse AST nodes.
TACInvocation Interface defining instructions that represent some kind of invocation.
UnaryOperation x = unop y; this class represents unary operations.
 

Class Summary
KeywordVariable Java and our three address code contain two 'special' variables that correspond with Java keywords and must be treated in a different manner than traditional source code variables.
SourceVariable A source variable is a variable in three address code that actually existed in the original Java source code.
SuperVariable The Super class represents the super keyword.
TempVariable Temporary variables created during the course of translating to three address code are represented by instances of this class.
ThisVariable This class represents the this keyword, which is treated much like any other variable.
TypeVariable In Java you can make calls that look like the following:
System.exit(0);
Here System is a class, but because out is a static field we access it directly from the class name.
Variable This class is the abstract super type of all variables in the three address code representation of a given Java program.
 

Enum Summary
BinaryOperator Binary operators including arithmetic, relational, and bitwise operators as well as bit shifts and string concatenation.
UnaryOperator Unary operators.
 

Package edu.cmu.cs.crystal.tac.model Description

The interfaces for the three-address code (TAC) instructions and variables.

See Also:
TACInstruction, Variable