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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
module AST.Token (Token (..)) where
type Ident = String
data Token
= CharTok Char
| IntTok Int
| FloatTok Float
| StringTok String
| Id Ident
| QId Ident
| Sym String
| QSym String
| LeftParen
| RightParen
| Semicolon
| LeftBrace
| RightBrace
| LeftBracket
| RightBracket
| Comma
| Underscore
| Backquote
| LeftBraceSemicolon
| VSemicolon
| VRightBrace
| KW_case
| KW_class
| KW_data
| KW_default
| KW_deriving
| KW_do
| KW_else
| KW_external
| KW_fcase
| KW_foreign
| KW_free
| KW_if
| KW_import
| KW_in
| KW_infix
| KW_infixl
| KW_infixr
| KW_instance
| KW_let
| KW_module
| KW_newtype
| KW_of
| KW_then
| KW_type
| KW_where
| At
| Colon
| DotDot
| DoubleColon
| Equals
| Backslash
| Bar
| LeftArrow
| RightArrow
| Tilde
| DoubleArrow
| Id_as
| Id_ccall
| Id_forall
| Id_hiding
| Id_interface
| Id_primitive
| Id_qualified
| SymDot
| SymMinus
| SymStar
| PragmaLanguage
| PragmaOptions (Maybe String) String
| PragmaHiding
| PragmaMethod
| PragmaModule
| PragmaEnd
| String
| String
| EOF
deriving (Eq, Show)
|