英語版
このページの英語版を見る
dmd.parse
レキサーからトークンストリームを受け取り、それを抽象構文木に解析する。
仕様 D文法
Authors:
License:
ソース parse.d
- class
Parser(AST, Lexer = dmd.lexer.Lexer): Lexer; -
- bool
transitionIn; - -transition=in がアクティブな場合、 パラメータがリストされる。in
- scope this(const ref Loc
loc, AST.Module_module, const(char)[]input, booldoDocComment, ErrorSinkerrorSink, const CompileEnv*compileEnv, const booldoUnittests); - 文字列ミックスインにはこのコンストラクタを使う。
入力 loc = ミックスインのソースファイルの場所
- scope this(AST.Module
_module, const(char)[]input, booldoDocComment, ErrorSinkerrorSink, const CompileEnv*compileEnv, const booldoUnittests); - メイン・パーサー・コンストラクタ。
- AST.Dsymbols*
parseModule(); - モジュールを解析する。つまり、オプションのmodule x.y.z 宣言と、現在のファイルにある を解析する。Returns:宣言のリスト、または不正な宣言の場合は空リスト、 モジュール宣言が見つかった場合は、this.md として格納される。
- final bool
parseModuleDeclaration(); - オプションのモジュール宣言を解析するReturns:不正なモジュール宣言が見つかった場合はfalse
- final AST.Dsymbols*
parseModuleContent(); - モジュールの内容、つまりファイルの最後まで見つかったすべての宣言を解析する。Returns:宣言のリスト、または不正な宣言の場合は空リスト。
- AST.Dsymbols*
parseDeclDefs(intonce, AST.Dsymbol*pLastDecl= null, PrefixAttributes!AST*pAttrs= null); - 宣言と定義を解析するParameters:
int once!=0は、正確に1つの宣言または定義を解析することを意味する。 AST.Dsymbol* pLastDecl最後に解析された宣言または定義に設定される PrefixAttributes!AST* pAttrs属性を追跡する Returns:宣言されたシンボルの配列 - RootObject
parseTypeOrAssignExp(TOKendtoken= TOK.reserved); - 型または式を解析するReturns:ASTを表すルートオブジェクト
- AST.Parameter
parseAssignCondition(); - if文やwhile文の代入条件を解析する。Returns:条件内で宣言されている変数
- AST.Statement
parseStatement(intflags, const(char)**endPtr= null, Loc*pEndloc= null); 入力 フラグ PSxxxx
出力 pEndloc if { ...文...} の場合は閉じ波括弧の位置を、そうでない場合は文の最後のトークンの位置を格納する。
- AST.Statement
parseAsm(boolendOfLine); - インラインアセンブラブロックを解析する。 asm のトークンで入る。 https://dlang.org/spec/iasm.html
AsmStatement asm FunctionAttributes(opt) { AsmInstructionListopt }.
AsmInstructionList AsmInstruction ; AsmInstruction ; AsmInstruction
Parameters:bool endOfLineEOLがasm文の終了を意味する場合、trueを返す。 Returns:アセンブラブロックを "文"としてインライン化する。 - void
check(Locloc, TOKvalue); - 現在のトークンが
value, 次のトークンに進む。Parameters:Loc locエラーメッセージの場所 TOK value比較するトークン値 - void
check(TOKvalue); - 現在のトークンが
value, 次のトークンに進む。Parameters:TOK value比較するトークン値 - void
check(TOKvalue, const(char)*string); - 現在のトークンが
value, 次のトークンに進む。Parameters:TOK value比較するトークン値 const(char)* stringエラーメッセージ - enum
NeedDeclaratorId; - bool
skipParens(Token*t, Token**pt); - 括弧をスキップする。Parameters:
Token* tオープン時( Token** pt*ptはtrueの場合、')を過ぎたトークンに設定される Returns:真 成功した false 解析エラー - AST.Expression
parsePrimaryExp(); - 式パーサー
- static StorageClass
isBuiltinAtAttribute(Identifierident); - 組み込みの@属性を認識するParameters:
Identifier ident識別子 Returns:属性の格納クラス、なければ0
- immutable PREC[EXP.max + 1]
precedence; - 各演算子に演算子の優先順位を設定する。hdrgenによって使用される
- struct
ParsedLinkage(AST); - ParseLinkage 関数の結果。
- LINK
link; - どのようなリンケージが指定されたか
- CPPMANGLE
cppmangle; - もしextern(C++, class|struct) 、が含まれていればclass|struct
- AST.Identifiers*
idents; - もしextern(C++, some.identifier) なら、識別子が含まれる。
- AST.Expressions*
identExps; - もし `extern(C++, (some_tuple_expression)|"string")なら、式になる。
Copyright © 1999-2025 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
サイト全体のドキュメントのdmdのバージョン: 2.109.1
最新のdmdのバージョン: 2.111.0 ダウンロード
翻訳日付:
HTML生成日時:
編集者: dokutoku