package IR.Tree;
import java.util.Vector;
+import IR.*;
-class BlockNode extends TreeNode {
+public class BlockNode extends TreeNode {
Vector blockstatements;
int printStyle=0;
+ protected SymbolTable table;
+
public final static int NORMAL=0;
public final static int NOBRACES=1;
public final static int EXPRLIST=2;
public BlockNode() {
blockstatements=new Vector();
+ table=new SymbolTable();
+ }
+
+ public SymbolTable getVarTable() {
+ return table;
}
public void addBlockStatement(BlockStatementNode bsn) {
blockstatements.add(bsn);
}
+
+ public void addFirstBlockStatement(BlockStatementNode bsn) {
+ blockstatements.insertElementAt(bsn,0);
+ }
+
public void setStyle(int style) {
printStyle=style;
}
+ public int size() {
+ return blockstatements.size();
+ }
+
+ public BlockStatementNode get(int i) {
+ return (BlockStatementNode) blockstatements.get(i);
+ }
+
public String printNode(int indent) {
if (printStyle==NORMAL) {
String st="{\n";
return st;
} else throw new Error();
}
+
+ public int kind() {
+ return Kind.BlockNode;
+ }
}