use crate::defines::{LiteralFloat, LiteralInt}; #[derive(PartialEq, Debug)] pub enum LexToken { EndOfFile, WhiteSpace, Identifier(String), IntegerLiteral(LiteralInt), FloatLiteral(LiteralFloat), StringLiteral(String), Semicolon, Colon, OpenBracket, CloseBracket, OpenCurlyBracket, CloseCurlyBracket, OpenBlockBracket, CloseBlockBracket, // Keywords AndKeyword, AbstractKeyword, AutoKeyword, BoolKeyword, BreakKeyword, CaseKeyword, CastKeyword, CatchKeyword, ClassKeyword, ConstKeyword, ContinueKeyword, DefaultKeyword, DoKeyword, DoubleKeyword, ElseKeyword, EnumKeyword, ExplicitKeyword, ExternalKeyword, FalseKeyword, FinalKeyword, FloatKeyword, ForKeyword, FromKeyword, FuncDefKeyword, FunctionKeyword, GetKeyword, IfKeyword, ImportKeyword, InKeyword, InOutKeyword, IntKeyword, InterfaceKeyword, Int8Keyword, Int16Keyword, Int32Keyword, Int64Keyword, IsKeyword, MixinKeyword, NamespaceKeyword, NotKeyword, NullKeyword, OrKeyword, OutKeyword, OverrideKeyword, PrivateKeyword, PropertyKeyword, ProtectedKeyword, ReturnKeyword, SetKeyword, SharedKeyword, SuperKeyword, SwitchKeyword, ThisKeyword, TrueKeyword, TryKeyword, TypeDefKeyword, UintKeyword, Uint8Keyword, Uint16Keyword, Uint32Keyword, Uint64Keyword, VoidKeyword, WhileKeyword, XorKeyword, // AssignOp Equals, PlusEquals, MinusEquals, StarEquals, SlashEquals, LineEquals, AmpersandEquals, RoofEquals, PercentEquals, StarStarEquals, LeftLeftEquals, RightRightEquals, RightRightRightEquals, // LogicOp AmpersandAmpersand, LineLine, RoofRoof, // CompOp EqualsEquals, NotEquals, NotIsKeyword, GreaterThan, GreaterThanEquals, LessThan, LessThanEquals, // MathOp Plus, Minus, Star, Slash, Percent, StarStar, // BitOp Ampersand, VerticalLine, Roof, LeftLeft, RightRight, RightRightRight, // ExprPreOp ExclamationMark, PlusPlus, MinusMinus, Tilde, AtSymbol, }