英語版
このページの英語版を見る
dmd.expressionsem
表現の意味解析。
Authors:
License:
ソース expressionsem.d
- bool
expressionsToString(ref OutBufferbuf, Scope*sc, Expressions*exps); - 式に対して意味解析とCTFEを行い、文字列を生成する。 文字列を生成する。Parameters:
OutBuffer buf生成された文字列をバッファに追加する Scope* scコンテキスト Expressions* exps"式"の配列。 Returns:エラー時にtrueを返す - FuncDeclaration
hasThis(Scope*sc); - this 関数が見つかるまで スコープを関数が見つかるまで歩くことによって、。Parameters:
Scope* scどこで包含関数を探し始めるか。 Returns:isThis() を満たしていれば関数が見つかる。null - StringExp
semanticString(Scope*sc, Expressionexp, const char*s); - 解決する
expをコンパイル時に既知の文字列として解決する。Parameters:Scope* scスコープ Expression exp文字列として期待される式 char* sこの文字列が何に使われるかは、エラー診断で使われる。 Returns:文字列リテラル、またはエラーが発生した場合はnull 。 - StringExp
toUTF8(StringExpse, Scope*sc); - 文字列をchar[]に変換する。
- TupleDeclaration
isAliasThisTuple(Expressione); - このタプルのエイリアスを展開する。
- Expression
resolveOpDollar(Scope*sc, ArrayExpae, Expression*pe0); - ae.argumentsのセマンティックを実行する。一時変数を宣言する。 が使用された場合、一時変数を宣言する。
- Expression
resolveOpDollar(Scope*sc, ArrayExpae, IntervalExpie, Expression*pe0); - se.lwrとse.uprに対してセマンティックを実行する。が使用された場合、一時変数を宣言する。 が使用された場合、一時変数を宣言する。Returns:エラーが発生した場合は ae または ErrorExp を実行する。
- bool
arrayExpressionSemantic(Expression[]exps, Scope*sc, boolpreserveErrors= false); - 式の配列に対してsemantic()を実行する。
- Expression
doCopyOrMove(Scope*sc, Expressione, Typet= null); - l値のポストブリット呼び出し、またはr値の移動を処理する。Parameters:
Scope* sc式が発生したスコープ。 Expression e移動またはコピーが必要な式(ソース) Type t構造体がコピーコンストラクタを定義している場合、コピー先の型。 Returns:値をコピー構築または移動する式。 - Expression
valueNoDtor(Expressione); - この式の値が欲しいが、デストラクタを呼び出したくない場合、次のようになる。 デストラクタを呼び出したくない場合。
- Expression
resolvePropertiesOnly(Scope*sc, Expressione1); - e1がプロパティ関数(テンプレート化された関数)であれば、それを解決する。
- Expression
symbolToExp(Dsymbols, const ref Locloc, Scope*sc, boolhasOverloads); - シンボル
sをそれが表す式に変える。Parameters:Dsymbol s解決する記号 Loc locの使用場所 sScope* scコンテキスト bool hasOverloadsが適用される。 sが関数を表す場合に適用される。 trueはオーバーロードされ、後で解決されることを意味する、 falseは正確な関数シンボルであることを意味する。Returns:sエラーが発生した場合、ErrorExp 。 - void
checkOverriddenDtor(FuncDeclarationf, Scope*sc, const ref Locloc, scope bool function(DtorDeclaration)check, const stringcheckName); - であるかどうかをチェックする。
fがユーザー定義のものを隠すために生成されたDtorDeclaration かどうかをチェックする。 を渡す。checkをパスする。fを隠す生成されたものであるかどうかをチェックする(例えば、ユーザー定義のdtorは純粋だが、生成されたdtorは純粋でない場合)。 生成されたdtorはそうでない場合など)。 その場合、このメソッドは属性の不一致を引き起こすすべてのメンバを特定し、表示する。 のミスマッチを引き起こすすべてのメンバを特定して表示する。Parameters:FuncDeclaration f潜在的なDtorDeclaration Scope* scスコープ Loc loc位置 bool function(DtorDeclaration) check現在のチェック(純粋かどうかなど) string checkNameチェックの種類 (例:"pure") - Package
resolveIsPackage(Dsymbolsym); - シンボルがモジュールかパッケージかを判定する (is(型==モジュール)とis(型==パッケージ)のヘルパーとして使われる)Parameters:
Dsymbol symチェックするシンボル Returns:を表すシンボルsymを表す(Package を表さない場合はnull )。 - Expression
trySemantic(Expressionexp, Scope*sc); - セマンティック・ルーチンの実行を試みる。 失敗した場合はNULLを返す。
- Expression
unaSemantic(UnaExpe, Scope*sc); - エラー伝搬を容易にするためのヘルパー関数。 エラーが発生した場合、ErrorExp を返す。それ以外は NULL を返す。
- Expression
binSemantic(BinExpe, Scope*sc); - 簡単なエラー伝播のためのヘルパー関数。 エラーが発生した場合、ErrorExpを返す。それ以外は NULL を返す。
- Expression
dotIdSemanticProp(DotIdExpexp, Scope*sc, boolgag); - UFCSを見ることなく、プロパティを解決する、つまり、e1.ident 。Parameters:
DotIdExp exp解決する式 Scope* scコンテキスト bool gagを返すだけで、エラーメッセージは出さない。null Returns:を返すだけである。 - Expression
dotTemplateSemanticProp(DotTemplateInstanceExpexp, Scope*sc, boolgag); - UFCSを見ずにe1.ident!tiargs を解決する。Parameters:
DotTemplateInstanceExp exp解決するDotTemplateInstanceExp Scope* sc意味的スコープ bool gagnot a property "エラーを止め、null 。 Returns:null エラーまたは見つからない場合は、解決された式を返す。 - bool
checkSharedAccess(Expressione, Scope*sc, boolreturnRef= false); - expressionが共有されている場合、アクセスできるかチェックする。 見つからない場合はエラーメッセージを出す。Parameters:
Expression eチェックする式 Scope* sc文脈 bool returnRefこの式がreturn 。 ref 。この場合、単一レベルの再参照が許される( )。 この場合、単一レベルの再参照が許される(例:shared(int)*)。 Returns:エラー時にtrueを返す - Expression
resolveLoc(Expressionexp, const ref Locloc, Scope*sc); - FILE__, __LINE__, __MODULE__, __FUNCTION__, __PRETTY_FUNCTION__, __FILE_FULL_PATH__" を loc に解決する。
- Expression
addDtorHook(Expressione, Scope*sc); - デストラクタはVarDeclarationに付けられる。 したがって、式がデストラクタを必要とするtempを返す場合、必ずVarDeclarationを作成すること、 そのtempに対してVarDeclarationを作成する。
- Expression
toLvalue(Expression_this, Scope*sc, const(char)*action); - 式をl値に変換してみる。l値でない場合はエラーを出す。Parameters:
Expression _this変換する式 Scope* scスコープ const(char)* actionエラーメッセージの場合、l値が何のために必要なのか(例えば、&x の場合はアドレスを取る、x++ の場合は修正する)。 Returns:変換された式、またはエラー時のErrorExp 。 - Modifiable
checkModifiable(Expressionexp, Scope*sc, ModifyFlagsflag= ModifyFlags.none); パラメータ sc: スコープ flag: 1: 無効な修正に対してエラーメッセージを発行しない。 2: expがDotVarExpで、左端の変数のサブフィールドが変更される 変数が変更される
Returns:型が変更可能かどうか。- Expression
modifiableLvalue(Expression_this, Scope*sc); - toLvalue と同様であるが、変更可能であることを強制するか、エラーを発生させる。Parameters:
Expression _this変換する式 Scope* scスコープ Returns:_thisをl値に変換する。ErrorExp - bool
checkAddressVar(Scope*sc, Expressionexp, VarDeclarationv); - を決定する。
expアドレスが取得された場合、安全にそれを行うことができる。Parameters:Scope* scコンテキスト Expression expアドレスを取られる式 VarDeclaration vアドレスを取られる変数 Returns:true OKなら、 。false - bool
checkAddressable(Expressione, Scope*sc); - このチェックは、exp のオブジェクトがアドレスを取得されるか、診断エラーを出すかを確実にする。 診断エラーを出す。Parameters:
Expression eチェックする式 Scope* scコンテキスト Returns:式がアドレス可能であればtrueを返す。 - Expression
getThisSkipNestedFuncs(const ref Locloc, Scope*sc, Dsymbols, AggregateDeclarationad, Expressione1, Typet, Dsymbolvar, boolflag= false); - getRightThis() のヘルパー関数。 次の外部集約のthis を取得する。Parameters:
Loc locエラーメッセージに使用する場所 Scope* scコンテキスト Dsymbol s既存のthis AggregateDeclaration ad構造体やクラスの親シンボルで、this 。 Expression e1既存のthis Type t既存の型this Dsymbol varアクセスしているadの特定のメンバー bool flagもしtrueなら、エラーを投げる代わりにnull 。 Returns:varに対するthis を表す式。 - VarDeclaration
makeThis2Argument(const ref Locloc, Scope*sc, FuncDeclarationfd); - this 引数として使用するデュアルコンテキストのコンテナを作成する。Parameters:
Loc locエラーメッセージに使用する場所 Scope* sc現在のスコープ FuncDeclaration fdthis 引数を受け取るターゲット関数 Returns:一時的なクロージャ変数。注釈 この関数
fdのネストされた参照に追加される。 に追加される。 のアドレスがfdのアドレスが取られたときに、その変数に対してクロージャが作られるようにする。 - bool
verifyHookExist(const ref Locloc, ref Scopesc, Identifierid, stringdescription, Identifiermodule_= Id.object); - 実行時フック
idが存在することを確認する。Parameters:Loc locエラーメッセージに使用する場所 Scope sc現在のスコープ Identifier idフックの識別子 string descriptionフックが何をするか Identifier module_フックがどのモジュールにあるか Returns:フックが存在するかどうかを示すbool 。 - Expression
getVarExp(EnumMemberem, const ref Locloc, Scope*sc); - 戻り値
emVariableExpとしてParameters:EnumMember emラップするEnumMember Loc locemの使用場所 Scope* scemの使用範囲 Returns:VarExp参照emまたはErrorExpを参照する。em無効/非推奨の場合 - Expression
toBoolean(Expressionexp, Scope*sc); - をブール値として扱う。
expをブール値として扱うようにする、Parameters:Expression exp式" とする。 Scope* scを評価する expである。Returns:成功時には修正された式、エラー時にはErrorExpが返される。 - bool
evalStaticCondition(Scope*sc, Expressionoriginal, Expressione, out boolerrors, Expressions*negatives= null); - コンパイル時に静的条件を意味的に分析し、評価する。 これは特別なことで、トップ・レベルの短絡演算子&&、 ||、? 式の結果が必要でない場合は、意味解析されないからである。 は意味解析されないからである。Parameters:
Scope* scスコープのインスタンス化 Expression original元の式、エラーメッセージ用 Expression e結果の式 bool errorsエラーが発生した場合はtrue に設定される Expressions* negatives否定句を格納する配列 Returns:trueと評価された場合はtrue
Copyright © 1999-2025 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
サイト全体のドキュメントのdmdのバージョン: 2.109.1
最新のdmdのバージョン: 2.111.0 ダウンロード
翻訳日付:
HTML生成日時:
編集者: dokutoku