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 Expr : {@link ASTNode}; 015 * @ast node 016 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/java.ast:104 017 */ 018 public abstract class Expr extends ASTNode<ASTNode> 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 Expr clone() throws CloneNotSupportedException { 034 Expr node = (Expr)super.clone(); 035 node.false_label_computed = false; 036 node.true_label_computed = false; 037 node.in$Circle(false); 038 node.is$Final(false); 039 return node; 040 } 041 /** 042 * @ast method 043 * @aspect TypeScopePropagation 044 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:461 045 */ 046 public SimpleSet keepAccessibleTypes(SimpleSet oldSet) { 047 SimpleSet newSet = SimpleSet.emptySet; 048 TypeDecl hostType = hostType(); 049 for(Iterator iter = oldSet.iterator(); iter.hasNext(); ) { 050 TypeDecl t = (TypeDecl)iter.next(); 051 if((hostType != null && t.accessibleFrom(hostType)) || (hostType == null && t.accessibleFromPackage(hostPackage()))) 052 newSet = newSet.add(t); 053 } 054 return newSet; 055 } 056 /** 057 * Remove fields that are not accessible when using this Expr as qualifier 058 * @return a set containing the accessible fields 059 * @ast method 060 * @aspect VariableScope 061 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupVariable.jrag:169 062 */ 063 public SimpleSet keepAccessibleFields(SimpleSet oldSet) { 064 SimpleSet newSet = SimpleSet.emptySet; 065 for(Iterator iter = oldSet.iterator(); iter.hasNext(); ) { 066 Variable v = (Variable)iter.next(); 067 if(v instanceof FieldDeclaration) { 068 FieldDeclaration f = (FieldDeclaration)v; 069 if(mayAccess(f)) 070 newSet = newSet.add(f); 071 } 072 } 073 return newSet; 074 } 075 /** 076 * @see "JLS $6.6.2.1" 077 * @return true if the expression may access the given field 078 * @ast method 079 * @aspect VariableScope 080 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupVariable.jrag:196 081 */ 082 public boolean mayAccess(FieldDeclaration f) { 083 if(f.isPublic()) { 084 return true; 085 } else if(f.isProtected()) { 086 if(f.hostPackage().equals(hostPackage())) 087 return true; 088 return hostType().mayAccess(this, f); 089 } else if(f.isPrivate()) { 090 return f.hostType().topLevelType() == hostType().topLevelType(); 091 } else { 092 return f.hostPackage().equals(hostType().hostPackage()); 093 } 094 } 095 /** 096 * @ast method 097 * @aspect QualifiedNames 098 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:106 099 */ 100 public Dot qualifiesAccess(Access access) { 101 Dot dot = new Dot(this, access); 102 dot.setStart(this.getStart()); 103 dot.setEnd(access.getEnd()); 104 return dot; 105 } 106 /** 107 * @ast method 108 * @aspect CodeGeneration 109 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CodeGeneration.jrag:696 110 */ 111 public void emitStore(CodeGeneration gen) { error("emitStore called with " + getClass().getName()); } 112 /** 113 * @ast method 114 * @aspect CodeGenerationBinaryOperations 115 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CodeGeneration.jrag:1016 116 */ 117 void emitOperation(CodeGeneration gen) {error();} 118 /** 119 * @ast method 120 * @aspect CreateBCode 121 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:211 122 */ 123 protected boolean needsPush() { 124 ASTNode n = getParent(); 125 while(n instanceof ParExpr) 126 n = n.getParent(); 127 return !(n instanceof ExprStmt); 128 } 129 /** 130 * @ast method 131 * @aspect CreateBCode 132 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:350 133 */ 134 public void createAssignSimpleLoadDest(CodeGeneration gen) { 135 } 136 /** 137 * duplicate top value on stack and store below destination element 138 * @ast method 139 * @aspect CreateBCode 140 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:366 141 */ 142 public void createPushAssignmentResult(CodeGeneration gen) { 143 } 144 /** 145 * @ast method 146 * @aspect CreateBCode 147 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:384 148 */ 149 public void createAssignLoadDest(CodeGeneration gen) { 150 } 151 /** 152 * @ast method 153 * @aspect CreateBCode 154 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:1030 155 */ 156 protected void emitBooleanCondition(CodeGeneration gen) { 157 emitEvalBranch(gen); 158 int end_label = hostType().constantPool().newLabel(); 159 gen.addLabel(false_label()); 160 BooleanLiteral.push(gen, false); 161 gen.emitGoto(end_label); 162 gen.changeStackDepth(-1); // discard false from stack depth computation 163 gen.addLabel(true_label()); 164 BooleanLiteral.push(gen, true); 165 gen.addLabel(end_label); 166 } 167 /** 168 * @ast method 169 * @aspect CreateBCode 170 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:1068 171 */ 172 public void refined_CreateBCode_Expr_emitEvalBranch(CodeGeneration gen) { 173 if(isTrue()) 174 gen.emitGoto(true_label()); 175 else if(isFalse()) 176 gen.emitGoto(false_label()); 177 else { 178 createBCode(gen); 179 gen.emitCompare(Bytecode.IFNE, true_label()); 180 gen.emitGoto(false_label()); 181 //gen.emitCompare(Bytecode.IFEQ, false_label()); 182 //gen.emitGoto(true_label()); 183 } 184 } 185 /** 186 * @ast method 187 * @aspect MethodSignature15 188 * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/MethodSignature.jrag:91 189 */ 190 protected SimpleSet chooseConstructor(Collection constructors, List argList) { 191 SimpleSet potentiallyApplicable = SimpleSet.emptySet; 192 // select potentially applicable constructors 193 for(Iterator iter = constructors.iterator(); iter.hasNext(); ) { 194 ConstructorDecl decl = (ConstructorDecl)iter.next(); 195 if(decl.potentiallyApplicable(argList) && decl.accessibleFrom(hostType())) 196 potentiallyApplicable = potentiallyApplicable.add(decl); 197 } 198 // first phase 199 SimpleSet maxSpecific = SimpleSet.emptySet; 200 for(Iterator iter = potentiallyApplicable.iterator(); iter.hasNext(); ) { 201 ConstructorDecl decl = (ConstructorDecl)iter.next(); 202 if(decl.applicableBySubtyping(argList)) 203 maxSpecific = mostSpecific(maxSpecific, decl); 204 } 205 206 // second phase 207 if(maxSpecific.isEmpty()) { 208 for(Iterator iter = potentiallyApplicable.iterator(); iter.hasNext(); ) { 209 ConstructorDecl decl = (ConstructorDecl)iter.next(); 210 if(decl.applicableByMethodInvocationConversion(argList)) 211 maxSpecific = mostSpecific(maxSpecific, decl); 212 } 213 } 214 215 // third phase 216 if(maxSpecific.isEmpty()) { 217 for(Iterator iter = potentiallyApplicable.iterator(); iter.hasNext(); ) { 218 ConstructorDecl decl = (ConstructorDecl)iter.next(); 219 if(decl.isVariableArity() && decl.applicableVariableArity(argList)) 220 maxSpecific = mostSpecific(maxSpecific, decl); 221 } 222 } 223 return maxSpecific; 224 } 225 /** 226 * @ast method 227 * @aspect MethodSignature15 228 * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/MethodSignature.jrag:128 229 */ 230 protected static SimpleSet mostSpecific(SimpleSet maxSpecific, ConstructorDecl decl) { 231 if(maxSpecific.isEmpty()) 232 maxSpecific = maxSpecific.add(decl); 233 else { 234 if(decl.moreSpecificThan((ConstructorDecl)maxSpecific.iterator().next())) 235 maxSpecific = SimpleSet.emptySet.add(decl); 236 else if(!((ConstructorDecl)maxSpecific.iterator().next()).moreSpecificThan(decl)) 237 maxSpecific = maxSpecific.add(decl); 238 } 239 return maxSpecific; 240 } 241 /** 242 * @ast method 243 * 244 */ 245 public Expr() { 246 super(); 247 248 249 } 250 /** 251 * Initializes the child array to the correct size. 252 * Initializes List and Opt nta children. 253 * @apilevel internal 254 * @ast method 255 * @ast method 256 * 257 */ 258 public void init$Children() { 259 } 260 /** 261 * @apilevel low-level 262 * @ast method 263 * 264 */ 265 protected int numChildren() { 266 return 0; 267 } 268 /** 269 * @apilevel internal 270 * @ast method 271 * 272 */ 273 public boolean mayHaveRewrite() { 274 return false; 275 } 276 /** 277 * @ast method 278 * @aspect AutoBoxingCodegen 279 * @declaredat /home/jesper/svn/JastAddJ/Java1.5Backend/AutoBoxingCodegen.jrag:111 280 */ 281 public void emitEvalBranch(CodeGeneration gen) { 282 if(type().isReferenceType()) { 283 createBCode(gen); 284 type().emitUnboxingOperation(gen); 285 gen.emitCompare(Bytecode.IFEQ, false_label()); 286 gen.emitGoto(true_label()); 287 } 288 else { 289 refined_CreateBCode_Expr_emitEvalBranch(gen); 290 } 291 } 292 /** 293 * @attribute syn 294 * @aspect TypeAnalysis 295 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeAnalysis.jrag:276 296 */ 297 @SuppressWarnings({"unchecked", "cast"}) 298 public abstract TypeDecl type(); 299 /** 300 * @attribute syn 301 * @aspect ConstantExpression 302 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/ConstantExpression.jrag:91 303 */ 304 public Constant constant() { 305 ASTNode$State state = state(); 306 try { 307 throw new UnsupportedOperationException("ConstantExpression operation constant" + 308 " not supported for type " + getClass().getName()); 309 } 310 finally { 311 } 312 } 313 /*syn lazy boolean FloatingPointLiteral.isZero() { 314 String s = getLITERAL(); 315 for(int i = 0; i < s.length(); i++) { 316 char c = s.charAt(i); 317 if(c == 'E' || c == 'e') 318 break; 319 if(Character.isDigit(c) && c != '0') { 320 return false; 321 } 322 } 323 return true; 324 } 325 syn lazy boolean DoubleLiteral.isZero() { 326 String s = getLITERAL(); 327 for(int i = 0; i < s.length(); i++) { 328 char c = s.charAt(i); 329 if(c == 'E' || c == 'e') 330 break; 331 if(Character.isDigit(c) && c != '0') { 332 return false; 333 } 334 } 335 return true; 336 }* @attribute syn 337 * @aspect ConstantExpression 338 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/ConstantExpression.jrag:152 339 */ 340 public boolean isPositive() { 341 ASTNode$State state = state(); 342 try { return false; } 343 finally { 344 } 345 } 346 /* 347 * representableIn(T) is true if and only if the the expression is a 348 * compile-time constant of type byte, char, short or int, and the value 349 * of the expression can be represented (by an expression) in the type T 350 * where T must be byte, char or short. 351 * @attribute syn 352 * @aspect ConstantExpression 353 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/ConstantExpression.jrag:308 354 */ 355 public boolean representableIn(TypeDecl t) { 356 ASTNode$State state = state(); 357 try { 358 if (!type().isByte() && !type().isChar() && !type().isShort() && !type().isInt()) { 359 return false; 360 } 361 if (t.isByte()) 362 return constant().intValue() >= Byte.MIN_VALUE && constant().intValue() <= Byte.MAX_VALUE; 363 if (t.isChar()) 364 return constant().intValue() >= Character.MIN_VALUE && constant().intValue() <= Character.MAX_VALUE; 365 if (t.isShort()) 366 return constant().intValue() >= Short.MIN_VALUE && constant().intValue() <= Short.MAX_VALUE; 367 if(t.isInt()) 368 return constant().intValue() >= Integer.MIN_VALUE && constant().intValue() <= Integer.MAX_VALUE; 369 return false; 370 } 371 finally { 372 } 373 } 374 /** 375 * @attribute syn 376 * @aspect ConstantExpression 377 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/ConstantExpression.jrag:336 378 */ 379 public boolean isConstant() { 380 ASTNode$State state = state(); 381 try { return false; } 382 finally { 383 } 384 } 385 /** 386 * @attribute syn 387 * @aspect ConstantExpression 388 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/ConstantExpression.jrag:365 389 */ 390 public boolean isTrue() { 391 ASTNode$State state = state(); 392 try { return isConstant() && type() instanceof BooleanType && constant().booleanValue(); } 393 finally { 394 } 395 } 396 /** 397 * @attribute syn 398 * @aspect ConstantExpression 399 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/ConstantExpression.jrag:366 400 */ 401 public boolean isFalse() { 402 ASTNode$State state = state(); 403 try { return isConstant() && type() instanceof BooleanType && !constant().booleanValue(); } 404 finally { 405 } 406 } 407 /** 408 * @attribute syn 409 * @aspect DefiniteAssignment 410 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:58 411 */ 412 public Variable varDecl() { 413 ASTNode$State state = state(); 414 try { return null; } 415 finally { 416 } 417 } 418 /** 419 * @attribute syn 420 * @aspect DA 421 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:333 422 */ 423 public boolean isDAafterFalse(Variable v) { 424 ASTNode$State state = state(); 425 try { return isTrue() || isDAbefore(v); } 426 finally { 427 } 428 } 429 /*eq Stmt.isDAafter(Variable v) { 430 //System.out.println("### isDAafter reached in " + getClass().getName()); 431 //throw new NullPointerException(); 432 throw new Error("Can not compute isDAafter for " + getClass().getName() + " at " + errorPrefix()); 433 }* @attribute syn 434 * @aspect DA 435 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:332 436 */ 437 public boolean isDAafterTrue(Variable v) { 438 ASTNode$State state = state(); 439 try { return isFalse() || isDAbefore(v); } 440 finally { 441 } 442 } 443 /** 444 * @attribute syn 445 * @aspect DA 446 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:235 447 */ 448 public boolean isDAafter(Variable v) { 449 ASTNode$State state = state(); 450 try { return (isDAafterFalse(v) && isDAafterTrue(v)) || isDAbefore(v); } 451 finally { 452 } 453 } 454 /** 455 * @attribute syn 456 * @aspect DU 457 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:703 458 */ 459 public boolean isDUafterFalse(Variable v) { 460 ASTNode$State state = state(); 461 try { 462 if(isTrue()) 463 return true; 464 return isDUbefore(v); 465 } 466 finally { 467 } 468 } 469 /** 470 * @attribute syn 471 * @aspect DU 472 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:702 473 */ 474 public boolean isDUafterTrue(Variable v) { 475 ASTNode$State state = state(); 476 try { 477 if(isFalse()) 478 return true; 479 return isDUbefore(v); 480 } 481 finally { 482 } 483 } 484 /** 485 * @attribute syn 486 * @aspect DU 487 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:694 488 */ 489 public boolean isDUafter(Variable v) { 490 ASTNode$State state = state(); 491 try { return (isDUafterFalse(v) && isDUafterTrue(v)) || isDUbefore(v); } 492 finally { 493 } 494 } 495 /** 496 * @attribute syn 497 * @aspect ConstructScope 498 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupConstructor.jrag:32 499 */ 500 public SimpleSet mostSpecificConstructor(Collection constructors) { 501 ASTNode$State state = state(); 502 try { 503 SimpleSet maxSpecific = SimpleSet.emptySet; 504 for(Iterator iter = constructors.iterator(); iter.hasNext(); ) { 505 ConstructorDecl decl = (ConstructorDecl)iter.next(); 506 if(applicableAndAccessible(decl)) { 507 if(maxSpecific.isEmpty()) 508 maxSpecific = maxSpecific.add(decl); 509 else { 510 if(decl.moreSpecificThan((ConstructorDecl)maxSpecific.iterator().next())) 511 maxSpecific = SimpleSet.emptySet.add(decl); 512 else if(!((ConstructorDecl)maxSpecific.iterator().next()).moreSpecificThan(decl)) 513 maxSpecific = maxSpecific.add(decl); 514 } 515 } 516 } 517 return maxSpecific; 518 } 519 finally { 520 } 521 } 522 /** 523 * @attribute syn 524 * @aspect ConstructScope 525 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupConstructor.jrag:50 526 */ 527 public boolean applicableAndAccessible(ConstructorDecl decl) { 528 ASTNode$State state = state(); 529 try { return false; } 530 finally { 531 } 532 } 533 /** 534 * @attribute syn 535 * @aspect LookupFullyQualifiedTypes 536 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:83 537 */ 538 public boolean hasQualifiedPackage(String packageName) { 539 ASTNode$State state = state(); 540 try { return false; } 541 finally { 542 } 543 } 544 /** 545 * @attribute syn 546 * @aspect TypeScopePropagation 547 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:430 548 */ 549 public SimpleSet qualifiedLookupType(String name) { 550 ASTNode$State state = state(); 551 try { return keepAccessibleTypes(type().memberTypes(name)); } 552 finally { 553 } 554 } 555 /** 556 * @attribute syn 557 * @aspect VariableScope 558 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupVariable.jrag:148 559 */ 560 public SimpleSet qualifiedLookupVariable(String name) { 561 ASTNode$State state = state(); 562 try { 563 if(type().accessibleFrom(hostType())) 564 return keepAccessibleFields(type().memberFields(name)); 565 return SimpleSet.emptySet; 566 } 567 finally { 568 } 569 } 570 /** 571 * @attribute syn 572 * @aspect Names 573 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/QualifiedNames.jrag:25 574 */ 575 public String packageName() { 576 ASTNode$State state = state(); 577 try { return ""; } 578 finally { 579 } 580 } 581 /** 582 * @attribute syn 583 * @aspect Names 584 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/QualifiedNames.jrag:62 585 */ 586 public String typeName() { 587 ASTNode$State state = state(); 588 try { return ""; } 589 finally { 590 } 591 } 592 /** 593 * @attribute syn 594 * @aspect AccessTypes 595 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:13 596 */ 597 public boolean isTypeAccess() { 598 ASTNode$State state = state(); 599 try { return false; } 600 finally { 601 } 602 } 603 /** 604 * @attribute syn 605 * @aspect AccessTypes 606 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:17 607 */ 608 public boolean isMethodAccess() { 609 ASTNode$State state = state(); 610 try { return false; } 611 finally { 612 } 613 } 614 /** 615 * @attribute syn 616 * @aspect AccessTypes 617 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:21 618 */ 619 public boolean isFieldAccess() { 620 ASTNode$State state = state(); 621 try { return false; } 622 finally { 623 } 624 } 625 /** 626 * @attribute syn 627 * @aspect AccessTypes 628 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:25 629 */ 630 public boolean isSuperAccess() { 631 ASTNode$State state = state(); 632 try { return false; } 633 finally { 634 } 635 } 636 /** 637 * @attribute syn 638 * @aspect AccessTypes 639 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:31 640 */ 641 public boolean isThisAccess() { 642 ASTNode$State state = state(); 643 try { return false; } 644 finally { 645 } 646 } 647 /** 648 * @attribute syn 649 * @aspect AccessTypes 650 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:37 651 */ 652 public boolean isPackageAccess() { 653 ASTNode$State state = state(); 654 try { return false; } 655 finally { 656 } 657 } 658 /** 659 * @attribute syn 660 * @aspect AccessTypes 661 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:41 662 */ 663 public boolean isArrayAccess() { 664 ASTNode$State state = state(); 665 try { return false; } 666 finally { 667 } 668 } 669 /** 670 * @attribute syn 671 * @aspect AccessTypes 672 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:45 673 */ 674 public boolean isClassAccess() { 675 ASTNode$State state = state(); 676 try { return false; } 677 finally { 678 } 679 } 680 /** 681 * @attribute syn 682 * @aspect AccessTypes 683 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:49 684 */ 685 public boolean isSuperConstructorAccess() { 686 ASTNode$State state = state(); 687 try { return false; } 688 finally { 689 } 690 } 691 /** 692 * @attribute syn 693 * @aspect QualifiedNames 694 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:55 695 */ 696 public boolean isLeftChildOfDot() { 697 ASTNode$State state = state(); 698 try { return hasParentDot() && parentDot().getLeft() == this; } 699 finally { 700 } 701 } 702 /** 703 * @attribute syn 704 * @aspect QualifiedNames 705 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:56 706 */ 707 public boolean isRightChildOfDot() { 708 ASTNode$State state = state(); 709 try { return hasParentDot() && parentDot().getRight() == this; } 710 finally { 711 } 712 } 713 /** 714 * @attribute syn 715 * @aspect QualifiedNames 716 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:69 717 */ 718 public AbstractDot parentDot() { 719 ASTNode$State state = state(); 720 try { return getParent() instanceof AbstractDot ? (AbstractDot)getParent() : null; } 721 finally { 722 } 723 } 724 /** 725 * @attribute syn 726 * @aspect QualifiedNames 727 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:70 728 */ 729 public boolean hasParentDot() { 730 ASTNode$State state = state(); 731 try { return parentDot() != null; } 732 finally { 733 } 734 } 735 /** 736 * @attribute syn 737 * @aspect QualifiedNames 738 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:72 739 */ 740 public Access nextAccess() { 741 ASTNode$State state = state(); 742 try { return parentDot().nextAccess(); } 743 finally { 744 } 745 } 746 /** 747 * @attribute syn 748 * @aspect QualifiedNames 749 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/ResolveAmbiguousNames.jrag:73 750 */ 751 public boolean hasNextAccess() { 752 ASTNode$State state = state(); 753 try { return isLeftChildOfDot(); } 754 finally { 755 } 756 } 757 /** 758 * @attribute syn 759 * @aspect NestedTypes 760 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeAnalysis.jrag:503 761 */ 762 public Stmt enclosingStmt() { 763 ASTNode$State state = state(); 764 try { 765 ASTNode node = this; 766 while(node != null && !(node instanceof Stmt)) 767 node = node.getParent(); 768 return (Stmt)node; 769 } 770 finally { 771 } 772 } 773 /** 774 * @attribute syn 775 * @aspect TypeCheck 776 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeCheck.jrag:15 777 */ 778 public boolean isVariable() { 779 ASTNode$State state = state(); 780 try { return false; } 781 finally { 782 } 783 } 784 /** 785 * @attribute syn 786 * @aspect TypeHierarchyCheck 787 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeHierarchyCheck.jrag:20 788 */ 789 public boolean isUnknown() { 790 ASTNode$State state = state(); 791 try { return type().isUnknown(); } 792 finally { 793 } 794 } 795 /** 796 * @attribute syn 797 * @aspect TypeHierarchyCheck 798 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeHierarchyCheck.jrag:150 799 */ 800 public boolean staticContextQualifier() { 801 ASTNode$State state = state(); 802 try { return false; } 803 finally { 804 } 805 } 806 /** 807 * @attribute syn 808 * @aspect CreateBCode 809 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:219 810 */ 811 public boolean needsPop() { 812 ASTNode$State state = state(); 813 try { return true; } 814 finally { 815 } 816 } 817 /** 818 * @attribute syn 819 * @aspect CreateBCode 820 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:231 821 */ 822 public boolean isVarAccessWithAccessor() { 823 ASTNode$State state = state(); 824 try { return false; } 825 finally { 826 } 827 } 828 /** 829 * @apilevel internal 830 */ 831 protected boolean false_label_computed = false; 832 /** 833 * @apilevel internal 834 */ 835 protected int false_label_value; 836 /** 837 * @attribute syn 838 * @aspect CreateBCode 839 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:941 840 */ 841 @SuppressWarnings({"unchecked", "cast"}) 842 public int false_label() { 843 if(false_label_computed) { 844 return false_label_value; 845 } 846 ASTNode$State state = state(); 847 int num = state.boundariesCrossed; 848 boolean isFinal = this.is$Final(); 849 false_label_value = false_label_compute(); 850 if(isFinal && num == state().boundariesCrossed){ false_label_computed = true; } 851 return false_label_value; 852 } 853 /** 854 * @apilevel internal 855 */ 856 private int false_label_compute() { return getParent().definesLabel() ? condition_false_label() : hostType().constantPool().newLabel(); } 857 /** 858 * @apilevel internal 859 */ 860 protected boolean true_label_computed = false; 861 /** 862 * @apilevel internal 863 */ 864 protected int true_label_value; 865 /** 866 * @attribute syn 867 * @aspect CreateBCode 868 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:943 869 */ 870 @SuppressWarnings({"unchecked", "cast"}) 871 public int true_label() { 872 if(true_label_computed) { 873 return true_label_value; 874 } 875 ASTNode$State state = state(); 876 int num = state.boundariesCrossed; 877 boolean isFinal = this.is$Final(); 878 true_label_value = true_label_compute(); 879 if(isFinal && num == state().boundariesCrossed){ true_label_computed = true; } 880 return true_label_value; 881 } 882 /** 883 * @apilevel internal 884 */ 885 private int true_label_compute() { return getParent().definesLabel() ? condition_true_label() : hostType().constantPool().newLabel(); } 886 /** 887 * @attribute syn 888 * @aspect CreateBCode 889 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:1007 890 */ 891 public boolean canBeTrue() { 892 ASTNode$State state = state(); 893 try { return !isFalse(); } 894 finally { 895 } 896 } 897 /** 898 * @attribute syn 899 * @aspect CreateBCode 900 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:1017 901 */ 902 public boolean canBeFalse() { 903 ASTNode$State state = state(); 904 try { return !isTrue(); } 905 finally { 906 } 907 } 908 /** 909 * @attribute syn 910 * @aspect Enums 911 * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Enums.jrag:500 912 */ 913 public boolean isEnumConstant() { 914 ASTNode$State state = state(); 915 try { return false; } 916 finally { 917 } 918 } 919 /** 920 * @attribute syn 921 * @aspect PreciseRethrow 922 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/PreciseRethrow.jrag:11 923 */ 924 public Collection<TypeDecl> throwTypes() { 925 ASTNode$State state = state(); 926 try { 927 Collection<TypeDecl> tts = new LinkedList<TypeDecl>(); 928 tts.add(type()); 929 return tts; 930 } 931 finally { 932 } 933 } 934 /** 935 * @attribute syn 936 * @aspect PreciseRethrow 937 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/PreciseRethrow.jrag:111 938 */ 939 public boolean modifiedInScope(Variable var) { 940 ASTNode$State state = state(); 941 try { return false; } 942 finally { 943 } 944 } 945 /** 946 * @attribute syn 947 * @aspect PreciseRethrow 948 * @declaredat /home/jesper/svn/JastAddJ/Java7Frontend/PreciseRethrow.jrag:115 949 */ 950 public boolean isVariable(Variable var) { 951 ASTNode$State state = state(); 952 try { return false; } 953 finally { 954 } 955 } 956 /** 957 * @attribute inh 958 * @aspect DefiniteAssignment 959 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:15 960 */ 961 @SuppressWarnings({"unchecked", "cast"}) 962 public boolean isDest() { 963 ASTNode$State state = state(); 964 boolean isDest_value = getParent().Define_boolean_isDest(this, null); 965 return isDest_value; 966 } 967 /** 968 * @attribute inh 969 * @aspect DefiniteAssignment 970 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:25 971 */ 972 @SuppressWarnings({"unchecked", "cast"}) 973 public boolean isSource() { 974 ASTNode$State state = state(); 975 boolean isSource_value = getParent().Define_boolean_isSource(this, null); 976 return isSource_value; 977 } 978 /** 979 * @attribute inh 980 * @aspect DefiniteAssignment 981 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:49 982 */ 983 @SuppressWarnings({"unchecked", "cast"}) 984 public boolean isIncOrDec() { 985 ASTNode$State state = state(); 986 boolean isIncOrDec_value = getParent().Define_boolean_isIncOrDec(this, null); 987 return isIncOrDec_value; 988 } 989 /** 990 * @attribute inh 991 * @aspect DA 992 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:234 993 */ 994 @SuppressWarnings({"unchecked", "cast"}) 995 public boolean isDAbefore(Variable v) { 996 ASTNode$State state = state(); 997 boolean isDAbefore_Variable_value = getParent().Define_boolean_isDAbefore(this, null, v); 998 return isDAbefore_Variable_value; 999 } 1000 /** 1001 * @attribute inh 1002 * @aspect DU 1003 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/DefiniteAssignment.jrag:693 1004 */ 1005 @SuppressWarnings({"unchecked", "cast"}) 1006 public boolean isDUbefore(Variable v) { 1007 ASTNode$State state = state(); 1008 boolean isDUbefore_Variable_value = getParent().Define_boolean_isDUbefore(this, null, v); 1009 return isDUbefore_Variable_value; 1010 } 1011 /** 1012 * @attribute inh 1013 * @aspect LookupMethod 1014 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupMethod.jrag:23 1015 */ 1016 @SuppressWarnings({"unchecked", "cast"}) 1017 public Collection lookupMethod(String name) { 1018 ASTNode$State state = state(); 1019 Collection lookupMethod_String_value = getParent().Define_Collection_lookupMethod(this, null, name); 1020 return lookupMethod_String_value; 1021 } 1022 /** 1023 * @attribute inh 1024 * @aspect SpecialClasses 1025 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:49 1026 */ 1027 @SuppressWarnings({"unchecked", "cast"}) 1028 public TypeDecl typeBoolean() { 1029 ASTNode$State state = state(); 1030 TypeDecl typeBoolean_value = getParent().Define_TypeDecl_typeBoolean(this, null); 1031 return typeBoolean_value; 1032 } 1033 /** 1034 * @attribute inh 1035 * @aspect SpecialClasses 1036 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:50 1037 */ 1038 @SuppressWarnings({"unchecked", "cast"}) 1039 public TypeDecl typeByte() { 1040 ASTNode$State state = state(); 1041 TypeDecl typeByte_value = getParent().Define_TypeDecl_typeByte(this, null); 1042 return typeByte_value; 1043 } 1044 /** 1045 * @attribute inh 1046 * @aspect SpecialClasses 1047 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:51 1048 */ 1049 @SuppressWarnings({"unchecked", "cast"}) 1050 public TypeDecl typeShort() { 1051 ASTNode$State state = state(); 1052 TypeDecl typeShort_value = getParent().Define_TypeDecl_typeShort(this, null); 1053 return typeShort_value; 1054 } 1055 /** 1056 * @attribute inh 1057 * @aspect SpecialClasses 1058 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:52 1059 */ 1060 @SuppressWarnings({"unchecked", "cast"}) 1061 public TypeDecl typeChar() { 1062 ASTNode$State state = state(); 1063 TypeDecl typeChar_value = getParent().Define_TypeDecl_typeChar(this, null); 1064 return typeChar_value; 1065 } 1066 /** 1067 * @attribute inh 1068 * @aspect SpecialClasses 1069 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:53 1070 */ 1071 @SuppressWarnings({"unchecked", "cast"}) 1072 public TypeDecl typeInt() { 1073 ASTNode$State state = state(); 1074 TypeDecl typeInt_value = getParent().Define_TypeDecl_typeInt(this, null); 1075 return typeInt_value; 1076 } 1077 /** 1078 * @attribute inh 1079 * @aspect SpecialClasses 1080 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:54 1081 */ 1082 @SuppressWarnings({"unchecked", "cast"}) 1083 public TypeDecl typeLong() { 1084 ASTNode$State state = state(); 1085 TypeDecl typeLong_value = getParent().Define_TypeDecl_typeLong(this, null); 1086 return typeLong_value; 1087 } 1088 /** 1089 * @attribute inh 1090 * @aspect SpecialClasses 1091 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:55 1092 */ 1093 @SuppressWarnings({"unchecked", "cast"}) 1094 public TypeDecl typeFloat() { 1095 ASTNode$State state = state(); 1096 TypeDecl typeFloat_value = getParent().Define_TypeDecl_typeFloat(this, null); 1097 return typeFloat_value; 1098 } 1099 /** 1100 * @attribute inh 1101 * @aspect SpecialClasses 1102 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:56 1103 */ 1104 @SuppressWarnings({"unchecked", "cast"}) 1105 public TypeDecl typeDouble() { 1106 ASTNode$State state = state(); 1107 TypeDecl typeDouble_value = getParent().Define_TypeDecl_typeDouble(this, null); 1108 return typeDouble_value; 1109 } 1110 /** 1111 * @attribute inh 1112 * @aspect SpecialClasses 1113 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:57 1114 */ 1115 @SuppressWarnings({"unchecked", "cast"}) 1116 public TypeDecl typeString() { 1117 ASTNode$State state = state(); 1118 TypeDecl typeString_value = getParent().Define_TypeDecl_typeString(this, null); 1119 return typeString_value; 1120 } 1121 /** 1122 * @attribute inh 1123 * @aspect SpecialClasses 1124 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:58 1125 */ 1126 @SuppressWarnings({"unchecked", "cast"}) 1127 public TypeDecl typeVoid() { 1128 ASTNode$State state = state(); 1129 TypeDecl typeVoid_value = getParent().Define_TypeDecl_typeVoid(this, null); 1130 return typeVoid_value; 1131 } 1132 /** 1133 * @attribute inh 1134 * @aspect SpecialClasses 1135 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:59 1136 */ 1137 @SuppressWarnings({"unchecked", "cast"}) 1138 public TypeDecl typeNull() { 1139 ASTNode$State state = state(); 1140 TypeDecl typeNull_value = getParent().Define_TypeDecl_typeNull(this, null); 1141 return typeNull_value; 1142 } 1143 /** 1144 * @attribute inh 1145 * @aspect SpecialClasses 1146 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:72 1147 */ 1148 @SuppressWarnings({"unchecked", "cast"}) 1149 public TypeDecl unknownType() { 1150 ASTNode$State state = state(); 1151 TypeDecl unknownType_value = getParent().Define_TypeDecl_unknownType(this, null); 1152 return unknownType_value; 1153 } 1154 /** 1155 * @attribute inh 1156 * @aspect LookupFullyQualifiedTypes 1157 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:86 1158 */ 1159 @SuppressWarnings({"unchecked", "cast"}) 1160 public boolean hasPackage(String packageName) { 1161 ASTNode$State state = state(); 1162 boolean hasPackage_String_value = getParent().Define_boolean_hasPackage(this, null, packageName); 1163 return hasPackage_String_value; 1164 } 1165 /** 1166 * @attribute inh 1167 * @aspect LookupFullyQualifiedTypes 1168 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:95 1169 */ 1170 @SuppressWarnings({"unchecked", "cast"}) 1171 public TypeDecl lookupType(String packageName, String typeName) { 1172 ASTNode$State state = state(); 1173 TypeDecl lookupType_String_String_value = getParent().Define_TypeDecl_lookupType(this, null, packageName, typeName); 1174 return lookupType_String_String_value; 1175 } 1176 /** 1177 * @attribute inh 1178 * @aspect TypeScopePropagation 1179 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupType.jrag:264 1180 */ 1181 @SuppressWarnings({"unchecked", "cast"}) 1182 public SimpleSet lookupType(String name) { 1183 ASTNode$State state = state(); 1184 SimpleSet lookupType_String_value = getParent().Define_SimpleSet_lookupType(this, null, name); 1185 return lookupType_String_value; 1186 } 1187 /** 1188 * @attribute inh 1189 * @aspect VariableScope 1190 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/LookupVariable.jrag:19 1191 */ 1192 @SuppressWarnings({"unchecked", "cast"}) 1193 public SimpleSet lookupVariable(String name) { 1194 ASTNode$State state = state(); 1195 SimpleSet lookupVariable_String_value = getParent().Define_SimpleSet_lookupVariable(this, null, name); 1196 return lookupVariable_String_value; 1197 } 1198 /** 1199 * @attribute inh 1200 * @aspect SyntacticClassification 1201 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/SyntacticClassification.jrag:20 1202 */ 1203 @SuppressWarnings({"unchecked", "cast"}) 1204 public NameType nameType() { 1205 ASTNode$State state = state(); 1206 NameType nameType_value = getParent().Define_NameType_nameType(this, null); 1207 return nameType_value; 1208 } 1209 /** 1210 * @attribute inh 1211 * @aspect NestedTypes 1212 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeAnalysis.jrag:510 1213 */ 1214 @SuppressWarnings({"unchecked", "cast"}) 1215 public BodyDecl enclosingBodyDecl() { 1216 ASTNode$State state = state(); 1217 BodyDecl enclosingBodyDecl_value = getParent().Define_BodyDecl_enclosingBodyDecl(this, null); 1218 return enclosingBodyDecl_value; 1219 } 1220 /** 1221 * @attribute inh 1222 * @aspect NestedTypes 1223 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeAnalysis.jrag:567 1224 */ 1225 @SuppressWarnings({"unchecked", "cast"}) 1226 public String hostPackage() { 1227 ASTNode$State state = state(); 1228 String hostPackage_value = getParent().Define_String_hostPackage(this, null); 1229 return hostPackage_value; 1230 } 1231 /** 1232 * @attribute inh 1233 * @aspect NestedTypes 1234 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeAnalysis.jrag:586 1235 */ 1236 @SuppressWarnings({"unchecked", "cast"}) 1237 public TypeDecl hostType() { 1238 ASTNode$State state = state(); 1239 TypeDecl hostType_value = getParent().Define_TypeDecl_hostType(this, null); 1240 return hostType_value; 1241 } 1242 /** 1243 * @attribute inh 1244 * @aspect TypeHierarchyCheck 1245 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeHierarchyCheck.jrag:11 1246 */ 1247 @SuppressWarnings({"unchecked", "cast"}) 1248 public String methodHost() { 1249 ASTNode$State state = state(); 1250 String methodHost_value = getParent().Define_String_methodHost(this, null); 1251 return methodHost_value; 1252 } 1253 /** 1254 * @attribute inh 1255 * @aspect TypeHierarchyCheck 1256 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Frontend/TypeHierarchyCheck.jrag:134 1257 */ 1258 @SuppressWarnings({"unchecked", "cast"}) 1259 public boolean inStaticContext() { 1260 ASTNode$State state = state(); 1261 boolean inStaticContext_value = getParent().Define_boolean_inStaticContext(this, null); 1262 return inStaticContext_value; 1263 } 1264 /** 1265 * @attribute inh 1266 * @aspect CreateBCode 1267 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:973 1268 */ 1269 @SuppressWarnings({"unchecked", "cast"}) 1270 public int condition_false_label() { 1271 ASTNode$State state = state(); 1272 int condition_false_label_value = getParent().Define_int_condition_false_label(this, null); 1273 return condition_false_label_value; 1274 } 1275 /** 1276 * @attribute inh 1277 * @aspect CreateBCode 1278 * @declaredat /home/jesper/svn/JastAddJ/Java1.4Backend/CreateBCode.jrag:977 1279 */ 1280 @SuppressWarnings({"unchecked", "cast"}) 1281 public int condition_true_label() { 1282 ASTNode$State state = state(); 1283 int condition_true_label_value = getParent().Define_int_condition_true_label(this, null); 1284 return condition_true_label_value; 1285 } 1286 /** 1287 * @attribute inh 1288 * @aspect GenericMethodsInference 1289 * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/GenericMethodsInference.jrag:33 1290 */ 1291 @SuppressWarnings({"unchecked", "cast"}) 1292 public TypeDecl assignConvertedType() { 1293 ASTNode$State state = state(); 1294 TypeDecl assignConvertedType_value = getParent().Define_TypeDecl_assignConvertedType(this, null); 1295 return assignConvertedType_value; 1296 } 1297 /** 1298 * @attribute inh 1299 * @aspect GenericsTypeAnalysis 1300 * @declaredat /home/jesper/svn/JastAddJ/Java1.5Frontend/Generics.jrag:271 1301 */ 1302 @SuppressWarnings({"unchecked", "cast"}) 1303 public boolean inExtendsOrImplements() { 1304 ASTNode$State state = state(); 1305 boolean inExtendsOrImplements_value = getParent().Define_boolean_inExtendsOrImplements(this, null); 1306 return inExtendsOrImplements_value; 1307 } 1308 /** 1309 * @apilevel internal 1310 */ 1311 public ASTNode rewriteTo() { 1312 return super.rewriteTo(); 1313 } 1314 }