org.aspectj.compiler.base.ast
Class Stmt

java.lang.Object
  extended byorg.aspectj.compiler.base.CompilerObject
      extended byorg.aspectj.compiler.base.ast.ASTObject
          extended byorg.aspectj.compiler.base.ast.Stmt
Direct Known Subclasses:
BlockStmt, BreakStmt, ContinueStmt, Dec, Decs, EmptyStmt, ExprStmt, FromDecStmt, LabeledStmt, ReturnStmt, SwitchStmt, SynchronizedStmt, TestStmt, ThrowStmt, TryStmt

public abstract class Stmt
extends ASTObject


Field Summary
 
Fields inherited from class org.aspectj.compiler.base.ast.ASTObject
dummySource, parent, sourceLocation
 
Constructor Summary
Stmt(SourceLocation location)
           
 
Method Summary
protected  void cgStmt(org.aspectj.compiler.base.bcg.CodeBuilder cb)
          This procedure does the work of generating bytecode.
 void cgTop(org.aspectj.compiler.base.bcg.CodeBuilder cb)
          The purpose of this procedure is to dispatch to #cg, but to perform an invariant check beforehand to make sure the current stack size is zero.
 boolean completesNormally()
           
 java.lang.String getDefaultDisplayName()
           
 boolean isBreakable()
           
 boolean isContinuable()
           
 boolean isEmpty()
           
 boolean mustBeLive()
          checks whether control must be live to reach this statement.
protected  void registerLocation(org.aspectj.compiler.base.bcg.CodeBuilder cb)
           
 void requireBlockStmt()
           
 void requireStmt()
           
 void setCompletesNormally(boolean b)
           
 
Methods inherited from class org.aspectj.compiler.base.ast.ASTObject
addComment, buildAccessMethod, checkNoSharing, checkSpec, cleanup, clearComment, clearParent, contains, containsTypes, copy, copyWalk, display, fixAccessPost, fixAST, fromSource, getAST, getBeginColumn, getBeginLine, getBytecodeType, getBytecodeTypeDec, getChildAt, getChildCount, getChildNameAt, getComment, getCompilationUnit, getDeclaringType, getEnclosingCodeDec, getEnclosingDec, getEndColumn, getEndLine, getEndPosition, getFormalComment, getLexicalType, getOutermostBytecodeType, getOutermostLexicalType, getParent, getSourceDirectoryName, getSourceFile, getSourceFileName, getSourceLocation, getStartPosition, hasLegalProtectedAccess, hasSource, hasSourceLocation, implementMixin, indexOf, inStaticContext, isLanguageVisible, isLeaf, isSynthetic, makeChild, makeChild, postAssignmentCheck, postCleanup, postCopy, postFixAST, postImplementMixin, postInnerAccess, postInnerInfo, postLift, postMove, postScope, postThreading, preAssignmentCheck, preCopy, preIntroduction, preLift, preMove, preScope, preThreading, remove, remove, removeChildAt, replaceWith, setChildAt, setFormalComment, setParent, setParents, setSource, setSourceLocation, setSyntheticSource, showError, showMessage, showTypeError, showWarning, toShortString, toString, unparse, unparse, walk, walkAnalysis, walkAssignmentCheck, walkCleanup, walkFlow, walkForwardReference, walkFrameLoc, walkInnerInfo, walkMemberMunger, walkScope
 
Methods inherited from class org.aspectj.compiler.base.CompilerObject
getCompiler, getOptions, getTypeManager, getWorld
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Stmt

public Stmt(SourceLocation location)
Method Detail

mustBeLive

public boolean mustBeLive()
checks whether control must be live to reach this statement. Block statements, for example, need not cause the "unreachable statement" error if they are empty. This is used as part of FlowCheckerPass.


isBreakable

public boolean isBreakable()

isContinuable

public boolean isContinuable()

isEmpty

public boolean isEmpty()

requireBlockStmt

public void requireBlockStmt()

requireStmt

public void requireStmt()

setCompletesNormally

public void setCompletesNormally(boolean b)

completesNormally

public boolean completesNormally()

cgTop

public void cgTop(org.aspectj.compiler.base.bcg.CodeBuilder cb)
The purpose of this procedure is to dispatch to #cg, but to perform an invariant check beforehand to make sure the current stack size is zero. This method is final only because it seems unlikely that anybody would want to override it (they should rather provide a definition for #cg). If there is a good reason to override this, the final modifier can be removed.


registerLocation

protected void registerLocation(org.aspectj.compiler.base.bcg.CodeBuilder cb)

cgStmt

protected void cgStmt(org.aspectj.compiler.base.bcg.CodeBuilder cb)
This procedure does the work of generating bytecode. Its main requirement is to leave the stack empty. This method should only be called from cgTop(org.aspectj.compiler.base.bcg.CodeBuilder).


getDefaultDisplayName

public java.lang.String getDefaultDisplayName()
Overrides:
getDefaultDisplayName in class ASTObject