2 import java.util.Vector;
4 public class BlockNode extends TreeNode {
5 Vector blockstatements;
7 public final static int NORMAL=0;
8 public final static int NOBRACES=1;
9 public final static int EXPRLIST=2;
12 blockstatements=new Vector();
15 public void addBlockStatement(BlockStatementNode bsn) {
16 blockstatements.add(bsn);
19 public void setStyle(int style) {
24 return blockstatements.size();
27 public BlockStatementNode get(int i) {
28 return (BlockStatementNode) blockstatements.get(i);
31 public String printNode(int indent) {
32 if (printStyle==NORMAL) {
34 for(int i=0;i<blockstatements.size();i++) {
35 BlockStatementNode bsn=(BlockStatementNode)blockstatements.get(i);
36 st+=printSpace(indent+INDENT)+bsn.printNode(indent+INDENT);
37 if (!((bsn instanceof SubBlockNode)||
38 (bsn instanceof LoopNode)||
39 (bsn instanceof IfStatementNode)))
41 if (bsn instanceof IfStatementNode)
44 st+=printSpace(indent)+"}";
46 } else if (printStyle==NOBRACES) {
48 for(int i=0;i<blockstatements.size();i++) {
49 BlockStatementNode bsn=(BlockStatementNode)blockstatements.get(i);
50 st+=printSpace(indent)+bsn.printNode(indent);
51 if (!((bsn instanceof SubBlockNode)||
52 (bsn instanceof LoopNode)||
53 (bsn instanceof IfStatementNode)))
57 } else if (printStyle==EXPRLIST) {
59 for(int i=0;i<blockstatements.size();i++) {
60 BlockStatementNode bsn=(BlockStatementNode)blockstatements.get(i);
62 if ((i+1)!=blockstatements.size())
66 } else throw new Error();
70 return Kind.BlockNode;