Package dk.brics.string.intermediate

Intermediate representation between jimple and flow graphs.


Interface Summary
FieldStatement Interface implemented by statements that operate with fields, which is currently FieldReference and FieldAssignment.
StatementVisitor A visitor pattern for statements.

Class Summary
Application The root of an intermediate program.
ArrayAddAll Adds every string in one collection to another.
ArrayAssignment Assignment between array variables.
ArrayCorrupt Corruption of an array variable.
ArrayFromArray Reading an array from an array of higher dimension.
ArrayNew Creation of a new array.
ArrayStatement Superclass of all statements that manipulate arrays or array variables.
ArrayWriteArray Writing an array into an array of higher dimension.
ArrayWriteElement Writing a string or primitive into an array.
AssertAliases Asserts whether two variables are aliases.
AssertBinaryOp Performs a binary operation op(a,b) and puts the result into a.
AssertStatement An assertion asserts that something was true last time another specified statement completed.
AssertUnaryOp Performs two binary operation opA(a,b),opB(b,a).
BasicBinaryOp Applies a binary operation to the first and second variables (without modifying them) and puts the result into the to variable.
BasicUnaryOp Applies a unary operation to the from variable (without modifying it) and puts the result into the to variable.
Call Calling another method.
Catch Catches an exception.
ExceptionalReturn Method returns by throwing an exception.
Field A field in the intermediate representation.
FieldAssignment Assignment from a local varable to a field.
FieldReference Assignment from a field to a local variable.
Hotspot The variable should be evaluated as a hotspot here.
Method A Java method.
MethodHead Entry point of a method, modeled as a pseudo-statement.
Nop No operation.
ObjectAssignment Assignment between variables whose types are uncertain.
ObjectCorrupt Corruption of a variable whose type is uncertain.
PrimitiveAssignment Assignment from one primitive to another.
PrimitiveFromArray Reading a primitive from an array.
PrimitiveStatement Superclass of all statements that manipulate primitive variables.
Return Return from a method.
Statement Superclass of all statements.
StringAssignment Assignment between string variables.
StringBufferAppend Appending a string to a string buffer.
StringBufferAppendChar Append a primitive char variable to a string buffer.
StringBufferAssignment Assignment between string buffer variables.
StringBufferBinaryOp Performing a binary operation between a string buffer and a string.
StringBufferCorrupt Corruption of a string buffer variable.
StringBufferInit Creation of a new string buffer object with some initial string content.
StringBufferOperation Superclass of all statements that manipulate a string buffer object.
StringBufferPrepend Prepending a string to a string buffer.
StringBufferStatement Superclass of all statements that manipulate string buffers or string buffer variables.
StringBufferUnaryOp Performing a unary operation on a string buffer.
StringConcat Concatenation of two strings.
StringFromArray Reading a string from an array.
StringFromStringBuffer Extracting the current string value from a string buffer.
StringInit Initialization of a string by a value in some regular set.
StringStatement Superclass of all statements that manipulate string variables.
Variable A variable or other intermediate value in the Java program.

Enum Summary
StringType Denotes the type of a string-related object.
VariableType Describes the possible types of a variable.

Package dk.brics.string.intermediate Description

Intermediate representation between jimple and flow graphs.

The structure of an intermediate program is documented in the Application class.

This code may be used under the terms of the GNU General Public License.

Anders Møller <>, Aske Simon Christensen <>, Asger Feldthaus <>

Copyright © 2003-2009 Anders Møller, Aske Simon Christensen, Asger Feldthaus.