summaryrefslogtreecommitdiffstats
path: root/src/front/lexer.py
blob: aca7473da190f86d02e408ef5a6917bec240ae54 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
class Lexer:
    line = 1

    def __init__(self):
        return

    def reserve(self, word):
        return

    def scan():
        return

class Tag:
    # lexer tokens
    NUMBER           = 1
    TRUE             = 2
    FALSE            = 3
    IDENT            = 4
    WHILE            = 5
    IF               = 6
    ELSE             = 7
    END              = 8
    LBRAK            = 9
    RBRAK            = 10
    LPAREN           = 11
    RPAREN           = 12
    NEWLINE          = 13
    COMMA            = 14
    FUN              = 15
    ASSIGNMENT       = 16
    RETURN           = 17
    OPERATOR         = 18

    # parser tokens
    BOOL             = 19
    JOIN             = 20
    EQUALITY         = 21
    RELATION         = 22
    EXPRESSION       = 23
    TERM             = 24
    UNARY            = 25
    FACTOR           = 26
    IDENT_LIST       = 27
    EXPRESSION_LIST  = 28
    PROGRAM          = 29
    FUNCTION         = 30
    STATEMENT        = 31
    STATEMENTS       = 32
    IF_STATEMENT     = 33
    WHILE_STATEMENT  = 34
    RETURN_STATEMENT = 35
    ASSIGN_STATEMENT = 36
    FUNCTION_CALL    = 37

class Token:
    tag = None

    def __init__(self, tag):
        return

    def __str__(self):
        return