- TypeIdentifier getThrowable(); 
- 
- Returns:
- 
TypeIdentifiercorresponding toobject.Throwable
 
- TypeIdentifier getException(); 
- 
- Returns:
- TypeIdentifier corresponding to object.Exception
 
- enum STMT: ubyte; 
- 
Identify Statement types with this enum rather than virtual functions. 
- abstract class Statement: dmd.ast_node.ASTNode; 
- 
- Specification
-  http://dlang.org/spec/statement.html
 
- static Statements* arraySyntaxCopy(Statements* a); 
- 
Do syntax copy of an array of Statement's. 
- const pure nothrow bool hasBreak(); 
- 
Determine if an enclosed breakwould apply to this statement, such as if it is a loop or switch statement.
 
- Returns:
- 
trueif it does
 
- const pure nothrow bool hasContinue(); 
- 
Determine if an enclosed continuewould apply to this statement, such as if it is a loop statement.
 
- Returns:
- 
trueif it does
 
- final bool usesEH(); 
- 
- Returns:
- 
trueif statement uses exception handling
 
- final bool comeFrom(); 
- 
- Returns:
- 
trueif statement 'comes from' somewhere else, like a goto
 
- final bool hasCode(); 
- 
- Returns:
- 
trueif statement has executable code.
 
- Statement scopeCode(Scope* sc, Statement* sentry, Statement* sexception, Statement* sfinally); 
- 
If this statement has code that needs to run in a finally clause at the end of the current scope, return that code in the form of a Statement.  
- Parameters:
- 
- 
| Scope* sc | context |  - 
| Statement* sentry | set to code executed upon entry to the scope |  - 
| Statement* sexception | set to code executed upon exit from the scope via exception |  - 
| Statement* sfinally | set to code executed in finally block |  
 
 
- Returns:
- code to be run in the finally clause
 
- Statements* flatten(Scope* sc); 
- 
Flatten out the scope by presenting the statement as an array of statements.  
- Parameters:
 
- Returns:
- The array of Statements, ornullif no flattening necessary
 
- inout pure nothrow inout(Statement) last(); 
- 
Find last statement in a sequence of statements.  
- Returns:
- the last statement, or nullif there isn't one
 
- void accept(Visitor v); 
- 
Support Visitor Pattern  
- Parameters:
 
- inout pure nothrow @nogc inout(ReturnStatement) endsWithReturnStatement(); 
- 
Does this statement end with a return statement?  I.e. is it a single return statement or some compound statement that unconditionally hits a return statement.  
- Returns:
- return statement it ends with, otherwise null
 
- final inout pure nothrow @nogc inout(ErrorStatement) isErrorStatement(); 
- 
A cheaper method of doing downcasting of Statements.  
- Returns:
- the downcast statement if it can be downcasted, otherwise null
 
 
- class ErrorStatement: dmd.statement.Statement; 
- 
Any Statement that fails semantic() or has a component that is an ErrorExp or a TypeError should return an ErrorStatement from semantic(). 
- class PeelStatement: dmd.statement.Statement; 
- class ExpStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#ExpressionStatement 
- class DtorExpStatement: dmd.statement.ExpStatement; 
- class CompileStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#mixin-statement 
- class CompoundStatement: dmd.statement.Statement; 
-  
- final this(ref const Loc loc, Statements* statements); 
- 
Construct a CompoundStatementusing an already existing array ofStatements
 
- Parameters:
- 
- 
| Loc loc | Instantiation information |  - 
| Statements* statements | An array of Statements, that will referenced by this class |  
 
 
- final this(ref const Loc loc, Statement[] sts...); 
- 
Construct a CompoundStatementfrom an array ofStatements
 
- Parameters:
- 
- 
| Loc loc | Instantiation information |  - 
| Statement[] sts | A variadic array of Statements, that will copied in this class The entries themselves will not be copied. |  
 
 
 
- class CompoundDeclarationStatement: dmd.statement.CompoundStatement; 
- class UnrolledLoopStatement: dmd.statement.Statement; 
- 
The purpose of this is so that continue will go to the next of the statements, and break will go to the end of the statements. 
- class ScopeStatement: dmd.statement.Statement; 
- class ForwardingStatement: dmd.statement.Statement; 
- 
Statement whose symbol table contains foreach index variables in a local scope and forwards other members to the parent scope. This wraps a statement.  Also see: dmd.attrib.ForwardingAttribDeclaration
 
- ForwardingScopeDsymbol sym; 
- 
The symbol containing the static foreachvariables.
 
- Statement statement; 
- 
The wrapped statement. 
- Statements* flatten(Scope* sc); 
- 
ForwardingStatements are distributed over the flattened sequence of statements. This prevents flattening to be "blocked" by a ForwardingStatement and is necessary, for example, to support generating scope guards with `static foreach`:  static foreach(i; 0 .. 10) scope(exit) writeln(i); writeln("this is printed first"); // then, it prints 10, 9, 8, 7, ... 
 
- class WhileStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#while-statement 
- class DoStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#do-statement 
- class ForStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#for-statement 
- class ForeachStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#foreach-statement 
- class ForeachRangeStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#foreach-range-statement 
- class IfStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#if-statement 
- class ConditionalStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/version.html#ConditionalStatement 
- class StaticForeachStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/version.html#StaticForeachStatement Static foreach statements, like: void main() { static foreach(i; 0 .. 10) { pragma(msg, i); } } 
- class PragmaStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#pragma-statement 
- class StaticAssertStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/version.html#StaticAssert 
- class SwitchStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#switch-statement 
- Expression condition; 
- 
switch(condition) 
- Statement _body; 
- bool isFinal; 
- 
https://dlang.org/spec/statement.html#final-switch-statement 
- DefaultStatement sdefault; 
- 
default: 
- Statement tryBody; 
- 
set to TryCatchStatement or TryFinallyStatement if in body portion 
- TryFinallyStatement tf; 
- 
set if in the 'finally' block of a TryFinallyStatement 
- GotoCaseStatements gotoCases; 
- 
array of unresolved GotoCaseStatement's 
- CaseStatements* cases; 
- 
array of CaseStatement's 
- int hasNoDefault; 
- 
!=0 if no default statement 
- int hasVars; 
- 
!=0 if has variable case values 
- VarDeclaration lastVar; 
- 
last observed variable declaration in this statement 
- bool checkLabel(); 
- 
- Returns:
- true if error
 
 
- class CaseStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#CaseStatement 
- class CaseRangeStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#CaseRangeStatement 
- class DefaultStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#DefaultStatement 
- class GotoDefaultStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#GotoStatement 
- class GotoCaseStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#GotoStatement 
- class SwitchErrorStatement: dmd.statement.Statement; 
- class ReturnStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#return-statement 
- class BreakStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#break-statement 
- class ContinueStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#continue-statement 
- class SynchronizedStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#SynchronizedStatement 
- class WithStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#with-statement 
- class TryCatchStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#try-statement 
- Statement tryBody; 
- 
set to enclosing TryCatchStatement or TryFinallyStatement if in body portion 
 
- class Catch: dmd.root.rootobject.RootObject; 
- 
https://dlang.org/spec/statement.html#Catch 
- class TryFinallyStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#try-statement 
- Statement tryBody; 
- 
set to enclosing TryCatchStatement or TryFinallyStatement if in body portion 
- bool bodyFallsThru; 
- 
true if body falls through to finally 
 
- class ScopeGuardStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#scope-guard-statement 
- class ThrowStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#throw-statement 
- class DebugStatement: dmd.statement.Statement; 
- class GotoStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#goto-statement 
- Statement tryBody; 
- 
set to TryCatchStatement or TryFinallyStatement if in body portion 
 
- class LabelStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#LabeledStatement 
- Statement tryBody; 
- 
set to TryCatchStatement or TryFinallyStatement if in body portion 
 
- class LabelDsymbol: dmd.dsymbol.Dsymbol; 
- class AsmStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/statement.html#asm 
- class InlineAsmStatement: dmd.statement.AsmStatement; 
- 
https://dlang.org/spec/iasm.html 
- class GccAsmStatement: dmd.statement.AsmStatement; 
- 
https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html Assembler instructions with D expression operands. 
- class CompoundAsmStatement: dmd.statement.CompoundStatement; 
- 
a complete asm {} block 
- class ImportStatement: dmd.statement.Statement; 
- 
https://dlang.org/spec/module.html#ImportDeclaration