// lexer/token.rs #[derive(Debug, Clone, PartialEq)] pub enum TokenKind { // 单字符 LeftParen, RightParen, LeftBrace, RightBrace, LeftBracket, RightBracket, Comma, Semicolon, Dot, Colon, // 运算符 Plus, Minus, Star, Slash, Bang, Equal, Greater, GreaterEqual, Less, LessEqual, EqualEqual, BangEqual, AndAnd, OrOr, // 字面量 Identifier(String), Number(f64), String(String), // 关键字 Let, Fn, If, Else, While, For, Break, Continue, Return, True, False, Nil, EOF, } #[derive(Debug, Clone)] pub struct Token { pub kind: TokenKind, pub line: usize, pub column: usize, }