pub enum TokenKind {
Show 135 variants
IntLit(i64),
UIntLit(u64),
FloatLit(f64),
CharLit(u8),
WideCharLit(u32),
StringLit(Vec<u8>),
WideStringLit(Vec<u32>),
Ident(InternedStr),
KwAuto,
KwExtern,
KwRegister,
KwStatic,
KwTypedef,
KwChar,
KwDouble,
KwFloat,
KwInt,
KwLong,
KwShort,
KwSigned,
KwUnsigned,
KwVoid,
KwConst,
KwVolatile,
KwRestrict,
KwStruct,
KwUnion,
KwEnum,
KwBreak,
KwCase,
KwContinue,
KwDefault,
KwDo,
KwElse,
KwFor,
KwGoto,
KwIf,
KwReturn,
KwSwitch,
KwWhile,
KwInline,
KwSizeof,
KwBool,
KwComplex,
KwImaginary,
KwAlignas,
KwAlignof,
KwAtomic,
KwGeneric,
KwNoreturn,
KwStaticAssert,
KwThreadLocal,
KwFloat16,
KwFloat32,
KwFloat64,
KwFloat128,
KwFloat32x,
KwFloat64x,
KwInt128,
KwInline2,
KwInline3,
KwSigned2,
KwConst2,
KwConst3,
KwVolatile2,
KwVolatile3,
KwRestrict2,
KwRestrict3,
KwBool2,
KwAlignof2,
KwAlignof3,
KwTypeof,
KwTypeof2,
KwTypeof3,
KwAttribute,
KwAttribute2,
KwAsm,
KwAsm2,
KwAsm3,
KwExtension,
KwThread,
Plus,
Minus,
Star,
Slash,
Percent,
Amp,
Pipe,
Caret,
Tilde,
LtLt,
GtGt,
Bang,
AmpAmp,
PipePipe,
Lt,
Gt,
LtEq,
GtEq,
EqEq,
BangEq,
Eq,
PlusEq,
MinusEq,
StarEq,
SlashEq,
PercentEq,
AmpEq,
PipeEq,
CaretEq,
LtLtEq,
GtGtEq,
PlusPlus,
MinusMinus,
Question,
Colon,
Arrow,
Dot,
Ellipsis,
Comma,
Semi,
LParen,
RParen,
LBracket,
RBracket,
LBrace,
RBrace,
Hash,
HashHash,
Backslash,
Eof,
Newline,
Space,
MacroBegin(Box<MacroBeginInfo>),
MacroEnd(MacroEndInfo),
}Expand description
トークン種別
Variants§
IntLit(i64)
整数リテラル
UIntLit(u64)
符号なし整数リテラル
FloatLit(f64)
浮動小数点リテラル
CharLit(u8)
文字リテラル
WideCharLit(u32)
ワイド文字リテラル
StringLit(Vec<u8>)
文字列リテラル
WideStringLit(Vec<u32>)
ワイド文字列リテラル
Ident(InternedStr)
KwAuto
KwExtern
KwRegister
KwStatic
KwTypedef
KwChar
KwDouble
KwFloat
KwInt
KwLong
KwShort
KwSigned
KwUnsigned
KwVoid
KwConst
KwVolatile
KwRestrict
KwStruct
KwUnion
KwEnum
KwBreak
KwCase
KwContinue
KwDefault
KwDo
KwElse
KwFor
KwGoto
KwIf
KwReturn
KwSwitch
KwWhile
KwInline
KwSizeof
KwBool
KwComplex
KwImaginary
KwAlignas
KwAlignof
KwAtomic
KwGeneric
KwNoreturn
KwStaticAssert
KwThreadLocal
KwFloat16
KwFloat32
KwFloat64
KwFloat128
KwFloat32x
KwFloat64x
KwInt128
KwInline2
KwInline3
KwSigned2
KwConst2
KwConst3
KwVolatile2
KwVolatile3
KwRestrict2
KwRestrict3
KwBool2
KwAlignof2
KwAlignof3
KwTypeof
KwTypeof2
KwTypeof3
KwAttribute
KwAttribute2
KwAsm
KwAsm2
KwAsm3
KwExtension
KwThread
Plus
Minus
Star
Slash
Percent
Amp
Pipe
Caret
Tilde
LtLt
GtGt
Bang
AmpAmp
PipePipe
Lt
Gt
LtEq
GtEq
EqEq
BangEq
Eq
PlusEq
MinusEq
StarEq
SlashEq
PercentEq
AmpEq
PipeEq
CaretEq
LtLtEq
GtGtEq
PlusPlus
MinusMinus
Question
Colon
Arrow
Dot
Ellipsis
Comma
Semi
LParen
RParen
LBracket
RBracket
LBrace
RBrace
Hash
HashHash
Backslash
Eof
ファイル終端
Newline
改行(プリプロセッサ用)
Space
空白(スペース/タブ)- PARSE_FLAG_SPACES モード用
MacroBegin(Box<MacroBeginInfo>)
マクロ展開開始マーカー
プリプロセッサがマクロ展開時に挿入し、パーサーが透過的に処理する。 AST構築時にマクロ展開情報を付与するために使用。
MacroEnd(MacroEndInfo)
マクロ展開終了マーカー
対応する MacroBegin と対を形成する。
Implementations§
Source§impl TokenKind
impl TokenKind
Sourcepub fn from_keyword(s: &str) -> Option<TokenKind>
pub fn from_keyword(s: &str) -> Option<TokenKind>
キーワード文字列からTokenKindへの変換
Sourcepub fn is_keyword(&self) -> bool
pub fn is_keyword(&self) -> bool
キーワードトークンかどうかを判定
Sourcepub fn keyword_str(&self) -> Option<&'static str>
pub fn keyword_str(&self) -> Option<&'static str>
キーワードトークン (Kw*) ならその表記文字列を &'static str で返す。
それ以外(Ident, リテラル, 記号)は None。
プリプロセッサで #define bool _Bool のような「キーワードに見える名前を
マクロ名として使う」ケースを受理するために、Ident と同等の扱いができるよう
識別子文字列を取り出す共通ヘルパ。TinyCC の統一トークン namespace に相当
する役割を、こちら側では lexer の出口で「キーワードと識別子を別バリアントに
分けてしまっている」ためここで吸収する。
Sourcepub fn format(&self, interner: &StringInterner) -> String
pub fn format(&self, interner: &StringInterner) -> String
トークンを文字列に変換
Trait Implementations§
impl StructuralPartialEq for TokenKind
Auto Trait Implementations§
impl Freeze for TokenKind
impl RefUnwindSafe for TokenKind
impl Send for TokenKind
impl Sync for TokenKind
impl Unpin for TokenKind
impl UnsafeUnpin for TokenKind
impl UnwindSafe for TokenKind
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