 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
n |
Expression
(typical binary expression)
|
|
|
|
u |
int
op; //
Operator ID
|
|
|
|
u |
Expression
left; // LHS expression
|
|
|
|
u |
Expression
right; // RHS expression
|
|
|
|
u |
Type
type; // Type of the
expression
|
|
|
|
u |
Annotation
ann; // Embedded
annotation (default: null)
|
|
|
|
u |
code()
{ // Convert
AST to backend intermediate
|
|
//
codes (low-level bytecodes)
|
|
|
if (ann) ann.perform();
|
|
|
//
call-back for metacomputation
|
|
|
left.code(); // generate code for LHS
|
|
|
right.code(); // generate code for RHS
|
|
|
add(op); } // generate code for goperatorh
|
|
|
|
u |
simplify() // Simplify
expression form. For example,
|
|
//
convert gax1h to gah
|
|