pub struct MacroBeginInfo {
pub marker_id: TokenId,
pub trigger_token_id: TokenId,
pub macro_name: InternedStr,
pub kind: MacroInvocationKind,
pub call_loc: SourceLocation,
pub is_wrapped: bool,
pub preserve_call: bool,
}Expand description
マクロ展開開始マーカーの情報
マクロ展開の開始位置を示し、展開元の情報を保持する。 パーサーはこのマーカーを透過的に処理し、ASTにマクロ情報を付与する。
Fields§
§marker_id: TokenIdこのマーカーのID(MacroEnd との対応付け用)
trigger_token_id: TokenId展開を引き起こしたトークンのID
macro_name: InternedStrマクロ名
kind: MacroInvocationKindマクロの種類と引数
call_loc: SourceLocation展開が発生した位置(マクロ呼び出し位置)
is_wrapped: boolwrap 対象マクロの場合 true(assert 等の特殊処理用)
preserve_call: boolコード生成でマクロ呼び出しを保持するか
true の場合、パーサーは MacroCall AST ノードを生成し、 コード生成時にマクロ呼び出し形式で出力可能にする。 false の場合、展開形式のみが使用される。
以下の場合に false になる:
- トークンペースト(##)を含むマクロ
- explicit_expand_macros に登録されたマクロ(SvANY, SvFLAGS 等)
Trait Implementations§
Source§impl Clone for MacroBeginInfo
impl Clone for MacroBeginInfo
Source§fn clone(&self) -> MacroBeginInfo
fn clone(&self) -> MacroBeginInfo
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MacroBeginInfo
impl Debug for MacroBeginInfo
Source§impl PartialEq for MacroBeginInfo
impl PartialEq for MacroBeginInfo
Source§fn eq(&self, other: &MacroBeginInfo) -> bool
fn eq(&self, other: &MacroBeginInfo) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for MacroBeginInfo
Auto Trait Implementations§
impl Freeze for MacroBeginInfo
impl RefUnwindSafe for MacroBeginInfo
impl Send for MacroBeginInfo
impl Sync for MacroBeginInfo
impl Unpin for MacroBeginInfo
impl UnsafeUnpin for MacroBeginInfo
impl UnwindSafe for MacroBeginInfo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more