Class Summary 
Arith 
The Arith class is a container for classes that represent integer arithmetic in the IR. 
Arith.AddExpr 
The AddExpr inner class represents the addition of two integer values that produces a new
integer value. 
Arith.AndExpr 
The AndExpr class represents the bitwise and of two integer values that produces a single
integer result. 
Arith.BinOp 
The BinOp inner class represents an operation on two integers with an infix binary
operation. 
Arith.CompExpr 
The CompExpr class represents the bitwise complement of an integer value that produces a
single integer result. 
Arith.DivExpr 
The DivExpr inner class represents a division operation on two integer values which
produces a single integer result. 
Arith.MulExpr 
The MulExpr inner class represents the multiplication of two integer values which produces
a single integer result. 
Arith.NegExpr 
The NegExpr class represents the negation (sign reversal) of an integer value that
produces a single integer result. 
Arith.OrExpr 
The OrExpr class represents the bitwise inclusive or of two integer values that produces a
single integer result. 
Arith.ShiftLeftExpr 
The ShiftLeftExpr class represents the shift left of an integer value that produces a
single integer result. 
Arith.ShiftRightExpr 
The ShiftRightExpr class represents the shift left of an integer value that produces a
single integer result. 
Arith.SubExpr 
The SubExpr inner class represents the subtraction of one integer value from another that
results in a new integer value. 
Arith.UnOp 
The UnOp inner class represents an operation on a single integer value. 
Arith.XorExpr 
The XorExpr class represents the bitwise exclusive or of two integer values that produces
a single integer result. 
AssignStmt 
The AssignStmt class represents an assignment statement in the IR. 
BitExpr 
The BitExpr class represents an access of an individual bit within a value. 
BitRangeExpr 
The BitRangeExpr class represents an expression whose value is the result of extracting a
range of the bits from another expression. 
CallExpr 
The CallExpr class represents a subroutine call within the IR. 
CallStmt 
The CallStmt class represents a call to a subroutine that does not produce a value. 
CodeRebuilder.DepthFirst 
The DepthFirst class is a base implementation of the CodeVisitor interface
that visits the tree in depthfirst order. 
CodeVisitor.Default 
The DepthFirst class is a base implementation of the CodeVisitor interface
that visits the tree in depthfirst order. 
CodeVisitor.DepthFirst 
The DepthFirst class is a base implementation of the CodeVisitor interface
that visits the tree in depthfirst order. 
CommentStmt 

ConversionExpr 
The MapExpr class represents an expression that is an access of an element within a map. 
DeclStmt 
The DeclStmt represents a declaration of a local, temporary value in the IR. 
Expr 
The Expr class represents an expression in the IR. 
ExprVisitor.DepthFirst 
The DepthFirst class is a base implementation of the ExprVisitor interface
that visits the tree in depthfirst order. 
IfStmt 
The IfStmt class represents a simple branch within the IR. 
Literal 
The Literal class represents a literal (constant value) as part of an expression. 
Literal.BoolExpr 
The BoolExpr inner class represents a boolean literal that has a known, constant value
(true or false). 
Literal.IntExpr 
The IntExpr inner class represents an integer literal that has a known, constant value. 
Logical 
The Logical class is a container for classes that represent expressions that produce booleans
in the IR. 
Logical.AndExpr 
The AndExpr inner class represents the logical AND of two boolean values that produces a
new boolean value. 
Logical.BinOp 
The BinOp inner class represents an operation on two values with an infix binary operation
that produces a boolean. 
Logical.EquExpr 
The EquExpr inner class represents a comparison for equality of two integer values that
produces a single boolean value. 
Logical.GreaterEquExpr 
The GreaterEquExpr inner class represents a comparison of two integer values that produces
a single boolean value that is true if and only if the first operand is greater than or equal to the
second operand. 
Logical.GreaterExpr 
The GreaterExpr inner class represents a comparison of two integer values that produces a
single boolean value that is true if and only if the first operand is greater than the second operand. 
Logical.LessEquExpr 
The LessEquExpr inner class represents a comparison of two integer values that produces a
single boolean value that is true if and only if the first operand is less than or equal to the second
operand. 
Logical.LessExpr 
The LessExpr inner class represents a comparison of two integer values that produces a
single boolean value that is true if and only if the first operand is less than the second operand. 
Logical.NequExpr 
The NequExpr inner class represents a comparison for inequality of two integer values that
produces a single boolean value. 
Logical.NotExpr 
The NotExpr inner class represents the logical negation of a single boolean value that
produces a new integer value. 
Logical.OrExpr 
The OrExpr inner class represents the logical OR of two boolean values that produces a new
boolean value. 
Logical.UnOp 
The UnOp inner class represents an operation on a single boolean value. 
Logical.XorExpr 
The XorExpr inner class represents the logical XOR of two boolean values that produces a
new boolean value. 
MapAssignStmt 
The MapAssignStmt class represents a statement that is an assignment to an element of a map. 
MapBitAssignStmt 
The MapBitAssignStmt represents an assignment to a single bit within an element within a map. 
MapBitRangeAssignStmt 
The MapBitRangeAssignment class represents an assignment to a range of bits of an element
within a map. 
MapExpr 
The MapExpr class represents an expression that is an access of an element within a map. 
ReturnStmt 
The ReturnStmt class represents a return statement within a subroutine that returns a value to
its caller. 
Stmt 
The Stmt class represents a statement in the IR that expresses the computation of an
instruction. 
StmtRebuilder.DepthFirst 
The DepthFirst class is a base implementation of the StmtVisitor interface
that visits the tree in depthfirst order. 
StmtVisitor.DepthFirst 
The DepthFirst class is a base implementation of the StmtVisitor interface
that visits the tree in depthfirst order. 
VarAssignStmt 
The VarAssignStmt class represents an assignment to a local or global variable within the IR
for an instruction or a subroutine. 
VarBitAssignStmt 
The VarBitAssignStmt class represents an assignment to a single bit within a local or global
variable. 
VarBitRangeAssignStmt 
The VarBitRangeAssignStmt method represents an assignment to a range of bits within a local or
global variable. 
VarExpr 
The VarExpr class represents an expression in the IR that is a use of a local or global
variable. 