kravl_parser/syntax/
tokens.rs

1#[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}