英語版
このページの英語版を見る

dmd.statementsem

文の意味解析を行う。
Authors:

ソース statementsem.d

bool throwSemantic(const ref Loc loc, ref Expression exp, Scope* sc);
セマンティックを実行する throw <exp>.
Parameters:
Loc loc を実行する。throw
Expression exp スローされる値
Scope* sc スコープを囲む
Returns:
throw が有効な場合は真、エラーが見つかった場合は偽を返す。
Statement scopeCode(Statement statement, Scope* sc, out Statement sentry, out Statement sexception, out Statement sfinally);
もし statementの最後にfinally節で実行する必要があるコードがある場合は、そのコードを で実行する必要があるコードがある場合は、そのコードを "文"の形で返す。
Parameters:
Statement statement ステートメント
Scope* sc コンテキスト
Statement sentry スコープに入ったときに実行されるコードに設定される
Statement sexception 例外によってスコープから出たときに実行されるコードに設定される。
Statement sfinally 最終ブロック内で実行されるコードに設定される
Returns:
finally節で実行されるコード
auto makeTupleForeach(Scope* sc, bool isStatic, bool isDecl, ForeachStatement fs, Dsymbols* dbody, bool needExpansion);
式タプルの型チェックとアンロールforeachstatic foreach "文"や"宣言"と同様である。static foreach 宣言も同様である。static foreach 。 foreach`宣言では、ビジター・インターフェイスが使われる。 結果はresult フィールドに書き込まれる)。静的な foreach`宣言では、結果のDsymbols*が直接返される。 を直接返す。
展開された本体は
  • UnrolledLoopStatement, 式タプル上のforeach
  • ForwardingStatement、static foreach ステートメント用。
  • ForwardingAttribDeclaration、static foreach 宣言用。
static foreach 変数はSTC.local として宣言される。 として宣言されている。 として宣言される。静的 foreach`の場合、複数のforeachループ変数を持つ。 この関数は、タプルを複数のタプルに展開する。 はタプルを複数のSTC.local static foreach 変数に展開する。
bool checkLabel(GotoStatement gs);
変数の宣言がスキップされていないかチェックする。
Parameters:
GotoStatement gs チェックする文
Returns:
エラーの場合は真