Class OpExprNode
Object
ASTNode
ExprNode
OpExprNode
public class OpExprNode
- extends ExprNode
An AST node representing an operator applied to one or two operands, as in
"exp1 + exp2" or "NOT exp".
Method Summary |
void |
codeGen(int reg)
Generates code to load the value of this expression into a register. |
void |
resolveNames(SymbolTable symtab)
Resolves all applied uses of identifiers in the tree rooted at this
node. |
void |
resolveTypes(ProcDeclNode proc)
Fills in types for all Symbols bound to IdNodes. |
void |
unparse(PrintWriter p,
int level)
Prints a source representation of the tree rooted at this node on
output stream p. |
OpExprNode
public OpExprNode(ExprNode left,
ExprNode right,
ASTNode.Opcode opcode)
- Creates a new OpExprNode.
- Parameters:
left
- the left operand. Will be null if the operator is a unary
operator.right
- the right operand.opcode
- the opcode.
unparse
public void unparse(PrintWriter p,
int level)
- Prints a source representation of the tree rooted at this node on
output stream p.
- Specified by:
unparse
in class ASTNode
- Parameters:
p
- the place to display the output.level
- the number of levels of indentation to use if the output
requires more than one line.
resolveNames
public void resolveNames(SymbolTable symtab)
- Resolves all applied uses of identifiers in the tree rooted at this
node.
- Specified by:
resolveNames
in class ASTNode
- Parameters:
symtab
- the symbol table to be used.
resolveTypes
public void resolveTypes(ProcDeclNode proc)
- Fills in types for all Symbols bound to IdNodes. Prints error messages
as necessary.
- Specified by:
resolveTypes
in class ASTNode
- Parameters:
proc
- the smallest enclosing procedure or function declaration.
codeGen
public void codeGen(int reg)
- Generates code to load the value of this expression into a register.
- Overrides:
codeGen
in class ExprNode
- Parameters:
reg
- the number of the s register where the result should be
placed.