kravl_parser/syntax/
tokens.rs1#[derive(Debug, PartialEq, Clone)]
2pub enum TokenType {
3 Integer,
4 Float,
5 Text,
6 Identifier,
7 Assign,
8 Definition,
9 Lambda,
10 Return,
11 Arrow,
12 Do,
13 End,
14
15 LParen,
16 RParen,
17 LBrace,
18 RBrace,
19 LBracket,
20 RBracket,
21
22 Colon,
23 Comma,
24 Period,
25 False,
26 True,
27 If,
28 Else,
29 BinOp,
30 Semicolon,
31}
32
33#[derive(Debug, Clone)]
34pub enum BinOp {
35 Mul,
36 Div,
37 Plus,
38 Minus,
39 Equal,
40 NotEqual,
41 Lt,
42 Gt,
43 LtEqual,
44 GtEqual,
45}
46
47#[derive(Debug, Clone)]
48pub struct Token {
49 pub token_type: TokenType,
50 pub content: String,
51 pub row: u32,
52 pub col: u32,
53}
54
55impl Token {
56 pub fn new(token_type: TokenType, content: String, row: u32, col: u32) -> Token {
57 Token {
58 token_type: token_type,
59 content: content,
60 row: row,
61 col: col,
62 }
63 }
64}