algorembrant's picture
Upload 25 files
59da845 verified
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)
}
}