Files
RustPython/parser/src/token.rs
2018-07-07 17:36:21 +02:00

95 lines
1.2 KiB
Rust

// Loosely based on token.h from CPython source:
#[derive(Debug)]
#[derive(PartialEq)]
pub enum Tok {
Name { name: String },
Number { value: i32 },
String { value: String },
Newline,
Indent,
Dedent,
Lpar,
Rpar,
Lsqb,
Rsqb,
Colon,
Comma,
Semi,
Plus,
Minus,
Star,
Slash,
Vbar, // '|'
Amper, // '&'
Less,
Greater,
Equal,
Dot,
Percent,
Lbrace,
Rbrace,
EqEqual,
NotEqual,
LessEqual,
GreaterEqual,
Tilde,
CircumFlex,
LeftShift,
RightShift,
DoubleStar,
PlusEqual,
MinusEqual,
StarEqual,
SlashEqual,
PercentEqual,
AmperEqual, // '&='
VbarEqual,
CircumflexEqual, // '^='
LeftShiftEqual,
RightShiftEqual,
DoubleSlash, // '//'
DoubleSlashEqual,
At,
AtEqual,
Rarrow,
Ellipses,
// Keywords (alphabetically):
False,
None,
True,
And,
As,
Assert,
Break,
Class,
Continue,
Def,
Del,
Elif,
Else,
Except,
Finally,
For,
From,
Global,
If,
Import,
In,
Is,
Lambda,
Nonlocal,
Not,
Or,
Pass,
Raise,
Return,
Try,
While,
With,
Yield,
}