File size: 1,106 Bytes
59da845 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | use std::fmt;
#[derive(Debug, Clone, PartialEq)]
pub enum Token {
// Keywords
Int,
Double,
String,
Bool,
Void,
If,
Else,
For,
While,
Return,
Input,
// Built-in MQL5 Types
MqlTick,
MqlRates,
// Identifiers & Literals
Identifier(String),
IntLiteral(i64),
DoubleLiteral(f64),
StringLiteral(String),
BoolLiteral(bool),
// Operators
Plus, // +
Minus, // -
Star, // *
Slash, // /
Assign, // =
Equals, // ==
NotEquals, // !=
Greater, // >
Less, // <
GreaterEq, // >=
LessEq, // <=
And, // &&
Or, // ||
Not, // !
// Punctuation
OpenParen, // (
CloseParen, // )
OpenBrace, // {
CloseBrace, // }
OpenBracket,// [
CloseBracket,//]
Comma, // ,
Semicolon, // ;
Dot, // .
// EOF
Eof,
}
impl fmt::Display for Token {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{:?}", self)
}
}
|