英語版
このページの英語版を見る
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 endOfLine
EOLが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-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku