英語版
このページの英語版を見る
dmd.dsymbol
Dシンボルの基本クラス。モジュール、変数、関数、列挙型など。
Authors:
License:
ソースdsymbol.d
カバレッジ https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dsymbol.d
- int
foreachDsymbol
(Dsymbols*symbols
, scope int delegate(Dsymbol)dg
); - 各 Dsymbol に対して dg(Dsymbol *sym) を呼び出す。 dg が 0 以外を返した場合、処理を中止し、その値を返す。それ以外の場合、0 を返す。Parameters:
Dsymbols* symbols
Dsymbols int delegate(Dsymbol) dg
各Dsymbolの呼び出しを委任する Returns: dg()が最後に返した値最後にdg()が返した値See Also: - void
foreachDsymbol
(Dsymbols*symbols
, scope void delegate(Dsymbol)dg
); - 各 Dsymbol に対して dg(Dsymbol *sym) を呼び出す。Parameters:
Dsymbols* symbols
Dsymbols void delegate(Dsymbol) dg
各Dsymbolに対して呼び出す See Also: - struct
FieldState
; - 構造体/クラス/共用体のフィールドの状態。 ビットフィールドなどのフィールドオフセットを設定する際の一時的な情報として使用される。
- uint
offset
; - 次のフィールドのバイトオフセット
- uint
fieldOffset
; - ビットフィールドの開始位置のバイトオフセット
- uint
fieldSize
; - フィールドのバイトサイズ
- uint
fieldAlign
; - フィールドのバイト整列
- uint
bitOffset
; - ビットオフセット
- bool
inFlight
; - ビットフィールドが処理中である
- class
Dsymbol
: dmd.ast_node.ASTNode; -
- ushort
localNum
; - FuncDeclaration.localsymtab内の名前との衝突を避けるために、名前を変更する
- final Module
getModule
(); - どのモジュールにDSymbolがあるかを決定する。
- final bool
isCsymbol
(); - このDシンボルはCファイルから来ているか?Returns:そうであれば true
- final Module
getAccessModule
(); - アクセス権限の範囲内で、DSymbol がどのモジュールに属するかを決定する。
- final inout @safe inout(Dsymbol)
pastMixin
(); pastMixin
これがテンプレートミックスインの場合、包含シンボルを返します。pastMixinAndNspace 同様に、さらにmangleOnlyであるNスペースをスキップする。 、 、 も参照のこと。 parent toParent toParent2- final inout @safe inout(Dsymbol)
toParent
();
final inout @safe inout(Dsymbol)toParent2
();
final inout inout(Dsymbol)toParentDecl
();
final inout inout(Dsymbol)toParentLocal
(); - parent フィールドは、メンバーが属する語彙的に最も外側のスコープシンボルを返す。
toParent
()論理的に包み込むスコープシンボルを返す。これはそのメンバーである。 TemplateMixinのものはスキップする。toParent2
()実行時に存在するスコープシンボルを返す。 TemplateInstance および TemplateMixin の両方をスキップする。 囲む関数/クラスの 'this' ポインタを探す際に使用する。toParentDecl
()似ているが、toParent2
()が、常にテンプレート宣言のスコープに従う。 インスタンス化のスコープではなく。toParentLocal
()似ているが、toParentDecl
()ただし、テンプレートの宣言が非ローカル、すなわちグローバルまたはスタティックである場合は、インスタンス化スコープに従う。Examples:xml-ph-0000@deepl.internalの宣言スコープを返す。ただし、シンボルが指定されている場合はそのスコープを返す。module mod; template Foo(alias a) { mixin Bar!(); } mixin template Bar() { public { // 可視性宣言 void baz() { a = 2; } } } void test() { int v = 1; alias foo = Foo!(v); foo.baz(); assert(v == 2); } // s == FuncDeclaration('mod.test.Foo!().Bar!().baz()') // s.parent == TemplateMixin('mod.test.Foo!().Bar!()') // s.toParent() == TemplateInstance('mod.test.Foo!()') // s.toParent2() == FuncDeclaration('mod.test') // s.toParentDecl() == Module('mod') // s.toParentLocal() == FuncDeclaration('mod.test')
- final Dsymbol
toParentP
(Dsymbolp1
, Dsymbolp2
= null); - this の宣言スコープを返す。ただし、シンボルが
p1
またはp2
その包囲するインスタンス化スコープ内に存在する場合は、 後者が返されます。 - final bool
followInstantiationContext
(Dsymbolp1
, Dsymbolp2
= null); - シンボルのいずれかが
p1
またはp2
this の包囲する インスタンス化スコープに存在する - static Dsymbols*
arraySyntaxCopy
(Dsymbols*a
); - DSymbolの配列の構文コピーを行う。
- Dsymbol
toAlias
(); - このシンボルが本当に別のもののエイリアスである場合、 その別のものを返す。 必要に応じて、前方参照を解決するためにsemantic()が呼び出される。
- Dsymbol
toAlias2
(); - 同名のテンプレートにおける再帰的なタプル展開を解決する。
- uinteger_t
size
(const ref Locloc
); - Returns:サイズが決定できない場合、SIZE_INVALIDを返す
- final inout inout(AggregateDeclaration)
isMember
(); - toParent() がそれである場合、AggregateDeclaration を返す。
- final inout inout(AggregateDeclaration)
isMember2
(); - toParent2() が真の場合 AggregateDeclaration を返す。
- final inout inout(AggregateDeclaration)
isMemberDecl
(); - toParentDecl() がその場合、AggregateDeclaration を返す。
- final inout inout(AggregateDeclaration)
isMemberLocal
(); - toParentLocal() がその場合、AggregateDeclaration を返す。
- pure nothrow @nogc @safe Visibility
visible
(); - Dsymbol
syntaxCopy
(Dsymbols
); - 構文をコピーする。 テンプレートのインスタンス化に使用される。 sがNULLの場合は、新しいオブジェクトを割り当て、そうでなければそれを埋める。
- bool
oneMember
(out Dsymbolps
, Identifierident
); - このシンボルが1つだけかどうかを判断する。Returns:false、ps = null:シンボルが2つ以上存在する true、ps = null:シンボルが0つ存在する true、ps = symbol:唯一のシンボル
- static bool
oneMembers
(Dsymbols*members
, out Dsymbolps
, Identifierident
); - Dsymbol::oneMember()と同じだが、Dsymbolsの配列を見てみよう。
- bool
hasPointers
(); - DSymbolはポインタを含む変数か?
- void
addComment
(const(char)*comment
); - DSymbolにドキュメントコメントを追加する。 NULLコメントは無視する。
- final const(char)*
comment
(); - このDsymbolのドキュメントコメントを取得する
- final UnitTestDeclaration
ddocUnittest
(); - このシンボルに関連付けられた ddoc unittest を取得する。 (ddoc でのみ使用)Returns:ddoc unittest、該当なし
- final void
ddocUnittest
(UnitTestDeclarationutd
); - このシンボルに関連する ddoc unittest を設定する。
- final bool
inNonRoot
(); - このシンボルが非ルートモジュールでインスタンス化されずに定義されている場合、trueを返す。
- static void
deinitialize
(); - コンパイラのグローバル状態を再初期化する。これは、_init によって設定された状態を元の状態に復元するために使用できる。
- void
accept
(Visitorv
);
- class
ScopeDsymbol
: dmd.dsymbol.Dsymbol; - スコープシンボルを生成するシンボル。
- Dsymbols*
importedScopes
; - 、すなわち、インポートされたモジュールやテンプレートミックスインなどのメンバーをインポートする
- final pure nothrow @nogc @safe Dsymbols*
getImportedScopes
(); - Returns:メンバーがインポートされたシンボル、すなわちインポートされたモジュールと テンプレートミックスイン。See Also:importScope
- final pure nothrow @nogc @safe Visibility.Kind[]
getImportVisibilities
(); - Returns:各インポートされたスコープに関連付けられた可視性の配列。 配列の長さは、インポートされたスコープの配列と一致する。See Also:getImportedScopes
- nothrow Dsymbol
symtabInsert
(Dsymbols
); - テーブルにDsymbolを挿入する。Parameters: シンボルを追加する
Dsymbol s
シンボルを追加する Returns:テーブルにすでに存在する場合はnull、s
挿入された場合 - nothrow Dsymbol
symtabLookup
(Dsymbols
, Identifierid
); - シンボルテーブルで識別子を検索する。Parameters:
Dsymbol s
シンボル Identifier id
識別子を調べる Returns:見つかった場合はDsymbol、見つからなかった場合はnullを返す - bool
hasStaticCtorOrDtor
(); - メンバのいずれかが静的コンストラクタまたは静的デストラクタである場合、または メンバがメンバを持つ場合、trueを返す。
- class
WithScopeSymbol
: dmd.dsymbol.ScopeDsymbol; - With 文のスコープ
- class
ArrayScopeSymbol
: dmd.dsymbol.ScopeDsymbol; - 配列インデックス/スライスのスコープ
- class
OverloadSet
: dmd.dsymbol.Dsymbol; - オーバーロード セット
- class
ForwardingScopeDsymbol
: dmd.dsymbol.ScopeDsymbol; - ForwardingScopeDsymbol。ForwardingAttribDeclarationおよびForwardingScopeDeclarationで使用され、シンボルの挿入を別のスコープに転送する。 詳細はdmd.attrib.ForwardingAttribDeclaration を参照のこと。
- nothrow Dsymbol
symtabLookup
(Dsymbols
, Identifierid
); - このオーバーライドは、以下の2つのケースを処理する。 static foreach (i, i; [0]) { ... } および static foreach (i; [0]) { enum i = 2; }
- class
ExpressionDsymbol
: dmd.dsymbol.Dsymbol; - 式をDSymbolラッパーで保持するクラス。 これはASTノードではなく、 DSymbol型の関数パラメータとして式を渡すために使用されるクラスである。
- class
AliasAssign
: dmd.dsymbol.Dsymbol; - エイリアスへの代入をカプセル化する: identifier = type; identifier = symbol; ここで、identifier はスコープ内のエイリアス宣言である。
- Identifier
ident
; - Dsymbolのidentはnullになる。このクラスは匿名クラスであるため
- Type
type
; - AliasDeclarationの右辺を置き換える。
type
- Dsymbol
aliassym
; - AliasDeclarationの前の右辺を
aliassym
- nothrow @safe this(const ref Loc
loc
, Identifierident
, Typetype
, Dsymbolaliassym
); - aliassym の型は1つだけ、かつ、aliassym は null ではない可能性がある
- class
DsymbolTable
: dmd.rootobject.RootObject; - Dsymbolの
- nothrow Dsymbol
lookup
(const Identifierident
); - シンボルテーブルで識別子を検索するParameters:
Identifier ident
識別子を調べる Returns: Dsymbolが見つかればそれを返し、見つからなければnullを返す。見つかればDsymbol、見つからなければnull - nothrow void
update
(Dsymbols
); - シンボルテーブル内の既存のシンボルを置き換える
s
。 存在しない場合は追加する。Parameters:Dsymbol s
同じ識別子を持つ置換シンボル - nothrow Dsymbol
insert
(Dsymbols
); - テーブルに Dsymbol を挿入する。Parameters:
Dsymbol s
シンボルを追加する Returns: テーブルにすでに存在する場合はnullを挿入する。テーブルにすでに存在する場合はnull、s
挿入された場合 - nothrow Dsymbol
insert
(const Identifierident
, Dsymbols
); - テーブルにD記号を挿入する。Parameters:
Identifier ident
インデックスとして使用する識別子 Dsymbol s
追加する Returns: テーブルにすでに存在する場合はnullを挿入する。テーブルにすでに存在する場合はNULL、s
挿入された場合 - const pure nothrow size_t
length
(); - Returns: シンボルテーブル内のシンボル数をシンボルテーブル内のシンボルの数を
- class
CAsmDeclaration
: dmd.dsymbol.Dsymbol; - グローバルasm 定義。
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.109.1
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku