001 /* This file was generated with JastAdd2 (http://jastadd.org) version R20130213 */ 002 package AST; 003 004 import java.util.HashSet; 005 import java.io.File; 006 import java.util.*; 007 import beaver.*; 008 import java.util.ArrayList; 009 import java.util.zip.*; 010 import java.io.*; 011 import java.io.FileNotFoundException; 012 import java.util.Collection; 013 /** 014 * @production EmptyStmt : {@link Stmt}; 015 * @ast node 016 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/java.ast:198 017 */ 018 public class EmptyStmt extends Stmt implements Cloneable { 019 /** 020 * @apilevel low-level 021 */ 022 public void flushCache() { 023 } 024 /** 025 * @apilevel internal 026 */ 027 public void flushCollectionCache() { 028 } 029 /** 030 * @apilevel internal 031 */ 032 @SuppressWarnings({"unchecked", "cast"}) 033 public EmptyStmt clone() throws CloneNotSupportedException { 034 EmptyStmt node = (EmptyStmt)super.clone(); 035 node.isDAafter_Variable_values = null; 036 node.isDUafter_Variable_values = null; 037 node.canCompleteNormally_computed = false; 038 node.in$Circle(false); 039 node.is$Final(false); 040 return node; 041 } 042 /** 043 * @apilevel internal 044 */ 045 @SuppressWarnings({"unchecked", "cast"}) 046 public EmptyStmt copy() { 047 048 try { 049 EmptyStmt node = (EmptyStmt) clone(); 050 node.parent = null; 051 if(children != null) 052 node.children = (ASTNode[]) children.clone(); 053 054 return node; 055 } catch (CloneNotSupportedException e) { 056 throw new Error("Error: clone not supported for " + getClass().getName()); 057 } 058 059 }/** 060 * Create a deep copy of the AST subtree at this node. 061 * The copy is dangling, i.e. has no parent. 062 * @return dangling copy of the subtree at this node 063 * @apilevel low-level 064 */ 065 @SuppressWarnings({"unchecked", "cast"}) 066 public EmptyStmt fullCopy() { 067 068 EmptyStmt tree = (EmptyStmt) copy(); 069 if (children != null) { 070 for (int i = 0; i < children.length; ++i) { 071 072 ASTNode child = (ASTNode) children[i]; 073 if(child != null) { 074 child = child.fullCopy(); 075 tree.setChild(child, i); 076 } 077 } 078 } 079 return tree; 080 081 } /** 082 * @ast method 083 * @aspect PrettyPrint 084 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/PrettyPrint.jadd:537 085 */ 086 public void toString(StringBuffer s) { 087 s.append(indent()); 088 s.append(";"); 089 } 090 /** 091 * @ast method 092 * @aspect CreateBCode 093 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:1191 094 */ 095 public void createBCode(CodeGeneration gen) { 096 super.createBCode(gen); 097 } 098 /** 099 * @ast method 100 * 101 */ 102 public EmptyStmt() { 103 super(); 104 105 106 } 107 /** 108 * Initializes the child array to the correct size. 109 * Initializes List and Opt nta children. 110 * @apilevel internal 111 * @ast method 112 * @ast method 113 * 114 */ 115 public void init$Children() { 116 } 117 /** 118 * @apilevel low-level 119 * @ast method 120 * 121 */ 122 protected int numChildren() { 123 return 0; 124 } 125 /** 126 * @apilevel internal 127 * @ast method 128 * 129 */ 130 public boolean mayHaveRewrite() { 131 return false; 132 } 133 protected java.util.Map isDAafter_Variable_values; 134 /** 135 * @attribute syn 136 * @aspect DA 137 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:416 138 */ 139 @SuppressWarnings({"unchecked", "cast"}) 140 public boolean isDAafter(Variable v) { 141 Object _parameters = v; 142 if(isDAafter_Variable_values == null) isDAafter_Variable_values = new java.util.HashMap(4); 143 if(isDAafter_Variable_values.containsKey(_parameters)) { 144 return ((Boolean)isDAafter_Variable_values.get(_parameters)).booleanValue(); 145 } 146 ASTNode$State state = state(); 147 int num = state.boundariesCrossed; 148 boolean isFinal = this.is$Final(); 149 boolean isDAafter_Variable_value = isDAafter_compute(v); 150 if(isFinal && num == state().boundariesCrossed){ isDAafter_Variable_values.put(_parameters, Boolean.valueOf(isDAafter_Variable_value)); } 151 return isDAafter_Variable_value; 152 } 153 /** 154 * @apilevel internal 155 */ 156 private boolean isDAafter_compute(Variable v) { return isDAbefore(v); } 157 protected java.util.Map isDUafter_Variable_values; 158 /** 159 * @attribute syn 160 * @aspect DU 161 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:865 162 */ 163 @SuppressWarnings({"unchecked", "cast"}) 164 public boolean isDUafter(Variable v) { 165 Object _parameters = v; 166 if(isDUafter_Variable_values == null) isDUafter_Variable_values = new java.util.HashMap(4); 167 if(isDUafter_Variable_values.containsKey(_parameters)) { 168 return ((Boolean)isDUafter_Variable_values.get(_parameters)).booleanValue(); 169 } 170 ASTNode$State state = state(); 171 int num = state.boundariesCrossed; 172 boolean isFinal = this.is$Final(); 173 boolean isDUafter_Variable_value = isDUafter_compute(v); 174 if(isFinal && num == state().boundariesCrossed){ isDUafter_Variable_values.put(_parameters, Boolean.valueOf(isDUafter_Variable_value)); } 175 return isDUafter_Variable_value; 176 } 177 /** 178 * @apilevel internal 179 */ 180 private boolean isDUafter_compute(Variable v) { return isDUbefore(v); } 181 /** 182 * @apilevel internal 183 */ 184 protected boolean canCompleteNormally_computed = false; 185 /** 186 * @apilevel internal 187 */ 188 protected boolean canCompleteNormally_value; 189 /** 190 * @attribute syn 191 * @aspect UnreachableStatements 192 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/UnreachableStatements.jrag:44 193 */ 194 @SuppressWarnings({"unchecked", "cast"}) 195 public boolean canCompleteNormally() { 196 if(canCompleteNormally_computed) { 197 return canCompleteNormally_value; 198 } 199 ASTNode$State state = state(); 200 int num = state.boundariesCrossed; 201 boolean isFinal = this.is$Final(); 202 canCompleteNormally_value = canCompleteNormally_compute(); 203 if(isFinal && num == state().boundariesCrossed){ canCompleteNormally_computed = true; } 204 return canCompleteNormally_value; 205 } 206 /** 207 * @apilevel internal 208 */ 209 private boolean canCompleteNormally_compute() { return reachable(); } 210 /** 211 * @attribute syn 212 * @aspect PreciseRethrow 213 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/PreciseRethrow.jrag:55 214 */ 215 public boolean modifiedInScope(Variable var) { 216 ASTNode$State state = state(); 217 try { return false; } 218 finally { 219 } 220 } 221 /** 222 * @apilevel internal 223 */ 224 public ASTNode rewriteTo() { 225 return super.rewriteTo(); 226 } 227 }