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) } }