Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
a local clone.
ddmd.statement
Compiler implementation of the
D programming language.
Authors:
License:
Source: statement.d
- Expression
checkAssignmentAsCondition
(Expressione
); - Check an assignment is used as a condition. Intended to be use before the semantic call on
e
.Parameters:Expression e
condition expression which is not yet run semantic analysis. Returns:e
or ErrorExp. - TypeIdentifier
getThrowable
(); - Return a type identifier reference to 'object.Throwable'
- abstract class
Statement
: ddmd.root.rootobject.RootObject; -
- 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.
Output: *
sentry
code executed upon entry to the scope *sexception
code executed upon exit from the scope via exception *sfinally
code executed in finally block - Statements*
flatten
(Scope*sc
); - Flatten out the scope by presenting the statement as an array of statements. Returns NULL if no flattening necessary.
- class
ErrorStatement
: ddmd.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
: ddmd.statement.Statement; - Statement
toStatement
(Dsymbols
); - Convert TemplateMixin members (== Dsymbols) to Statements.
- class
ExpStatement
: ddmd.statement.Statement; - class
DtorExpStatement
: ddmd.statement.ExpStatement; - class
CompileStatement
: ddmd.statement.Statement; - class
CompoundStatement
: ddmd.statement.Statement; -
- final this(Loc
loc
, Statements*s
); - Construct a CompoundStatement using an already existing array of Statement
s
Parameters:Loc loc
Instantiation information Statements* s
An array of Statement s
, that will referenced by this class - final this(Loc
loc
, Statement[]sts
...); - Construct a CompoundStatement from an array of StatementsParameters:
Loc loc
Instantiation information s A variadic array of Statements, that will copied in this class The entries themselves will not be copied.
- class
CompoundDeclarationStatement
: ddmd.statement.CompoundStatement; - class
UnrolledLoopStatement
: ddmd.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
: ddmd.statement.Statement; - class
ForwardingStatement
: ddmd.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: ddmd.attrib.ForwardingAttribDeclaration
- ForwardingScopeDsymbol
sym
; - The symbol containing the static foreach variables.
- 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
: ddmd.statement.Statement; - class
DoStatement
: ddmd.statement.Statement; - class
ForStatement
: ddmd.statement.Statement; - class
ForeachStatement
: ddmd.statement.Statement; - class
ForeachRangeStatement
: ddmd.statement.Statement; - class
IfStatement
: ddmd.statement.Statement; - class
ConditionalStatement
: ddmd.statement.Statement; - class
StaticForeachStatement
: ddmd.statement.Statement; - Static foreach statements, like: void main() { static foreach(i; 0 .. 10) { pragma(msg, i); } }
- class
PragmaStatement
: ddmd.statement.Statement; - class
StaticAssertStatement
: ddmd.statement.Statement; - class
SwitchStatement
: ddmd.statement.Statement; - class
CaseStatement
: ddmd.statement.Statement; - class
CaseRangeStatement
: ddmd.statement.Statement; - class
DefaultStatement
: ddmd.statement.Statement; - class
GotoDefaultStatement
: ddmd.statement.Statement; - class
GotoCaseStatement
: ddmd.statement.Statement; - class
SwitchErrorStatement
: ddmd.statement.Statement; - class
ReturnStatement
: ddmd.statement.Statement; - class
BreakStatement
: ddmd.statement.Statement; - class
ContinueStatement
: ddmd.statement.Statement; - class
SynchronizedStatement
: ddmd.statement.Statement; - class
WithStatement
: ddmd.statement.Statement; - class
TryCatchStatement
: ddmd.statement.Statement; - class
Catch
: ddmd.root.rootobject.RootObject; - class
TryFinallyStatement
: ddmd.statement.Statement; - class
OnScopeStatement
: ddmd.statement.Statement; - class
ThrowStatement
: ddmd.statement.Statement; - class
DebugStatement
: ddmd.statement.Statement; - class
GotoStatement
: ddmd.statement.Statement; - class
LabelStatement
: ddmd.statement.Statement; - class
LabelDsymbol
: ddmd.dsymbol.Dsymbol; - class
AsmStatement
: ddmd.statement.Statement; - class
CompoundAsmStatement
: ddmd.statement.CompoundStatement; - a complete asm {} block
- class
ImportStatement
: ddmd.statement.Statement;
Copyright © 1999-2017 by the D Language Foundation | Page generated by
Ddoc on (no date time)