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

dmd.initsem

初期化子の意味解析
Authors:

出典 initsem.d

Expression toAssocArrayLiteral(ArrayInitializer ai);
可能であれば、配列イニシャライザを連想配列イニシャライザに変換する。
Parameters:
ArrayInitializer ai 変換する配列イニシャライザ
Returns:
変換後の連想配列イニシャライザ。 ai が連想配列イニシャライザでない場合はErrorExp。
Initializer initializerSemantic(Initializer init, Scope* sc, ref Type tx, NeedInterpret needInterpret);
init に対してセマンティック解析を行う。
Parameters:
Initializer init イニシャライザASTノード
Scope* sc コンテキスト
Type tx イニシャライザがなる必要のある "型"。もしtxが未完成の 型であり、イニシャライザがそれを完了すると、それは完全な型に更新される。 に更新される。ImportCは不完全型を持っている。
NeedInterpret needInterpret CTFEを実行する必要がある場合、 例えば、const宣言のイニシャライザである場合などである。
Returns:
Initializer ErrorInitializer のイニシャライザである場合などである。 エラーが発生した場合
Initializer inferType(Initializer init, Scope* sc);
型を推測するために、initをExpression
Parameters:
Initializer init Initializer ASTノード
Scope* sc コンテキスト
Returns:
成功すれば同等のExpInitializer 、翻訳できなければErrorInitializer
Expression initializerToExpression(Initializer init, Type itype = null, const bool isCfile = false);
initをExpression
Parameters:
Initializer init Initializer ASTノード
Type itype null でなければ、式を強制する型に変換する。
bool isCfile デフォルトのイニシャライザはC言語と異なる
Returns:
Expression できない場合は 、その他のエラーは 。null ErrorExp
Expressions* resolveStructLiteralNamedArgs(StructDeclaration sd, Type t, Scope* sc, Loc iloc, Identifier[] names, scope Expression delegate(size_t i, Type fieldType) getExp, scope Loc delegate(size_t i) getLoc);
StructInitializer またはCallExp の名前と値が与えられる、 それを式のリストに解決して、StructLiteralExp を構築する。
Parameters:
StructDeclaration sd 構造体
Type t 構造体の型(constimmutable などの修飾子を含む可能性がある)。
Scope* sc 構造体を初期化する式のスコープ。
Loc iloc 構造体を初期化する式の位置
Identifier[] names 引数リストで渡される識別子、null 位置引数のエントリ
Expression delegate(size_t i, Type fieldType) getExp へのインデックスとデスティネーション型が与えられると、初期化する式を返す "関数"。 namesへのインデックスとデスティネーション型が与えられると、初期化式を返す関数である。
Loc delegate(size_t i) getLoc へのインデックスが与えられると、エラーメッセージの場所を返す。 namesにインデックスを与えると、エラーメッセージの場所を返す
Returns:
構造体のフィールドに順序付けられた式のリスト、またはエラー時にnull