英語版
このページの英語版を見る
dmd.initsem
初期化子の意味解析
Authors:
License:
出典 initsem.d
- Expression
toAssocArrayLiteral
(ArrayInitializerai
); - 可能であれば、配列イニシャライザを連想配列イニシャライザに変換する。Parameters:
ArrayInitializer ai
変換する配列イニシャライザ Returns:変換後の連想配列イニシャライザ。ai
が連想配列イニシャライザでない場合はErrorExp。 - Initializer
initializerSemantic
(Initializerinit
, Scope*sc
, ref Typetx
, NeedInterpretneedInterpret
); - init に対してセマンティック解析を行う。Parameters:
Initializer init
イニシャライザASTノード Scope* sc
コンテキスト Type tx
イニシャライザがなる必要のある "型"。もしtxが未完成の 型であり、イニシャライザがそれを完了すると、それは完全な型に更新される。 に更新される。ImportCは不完全型を持っている。 NeedInterpret needInterpret
CTFEを実行する必要がある場合、 例えば、const宣言のイニシャライザである場合などである。 Returns:Initializer ErrorInitializer のイニシャライザである場合などである。 エラーが発生した場合 - Initializer
inferType
(Initializerinit
, Scope*sc
); - 型を推測するために、initをExpression 。Parameters:
Initializer init
Initializer ASTノード Scope* sc
コンテキスト Returns:成功すれば同等のExpInitializer 、翻訳できなければErrorInitializer 。 - Expression
initializerToExpression
(Initializerinit
, Typeitype
= null, const boolisCfile
= false); - initをExpression 。Parameters:
Initializer init
Initializer ASTノード Type itype
null でなければ、式を強制する型に変換する。 bool isCfile
デフォルトのイニシャライザはC言語と異なる Returns:Expression できない場合は 、その他のエラーは 。null ErrorExp - Expressions*
resolveStructLiteralNamedArgs
(StructDeclarationsd
, Typet
, Scope*sc
, Lociloc
, 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
構造体の型(const やimmutable などの修飾子を含む可能性がある)。 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 。
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku