nixd
Loading...
Searching...
No Matches
libnixf
src
Parse
tokens.py
Go to the documentation of this file.
1
from
dataclasses
import
dataclass
2
from
typing
import
List
3
4
5
@dataclass
6
class
Token
:
7
name: str
8
spelling: str
9
10
11
class
KwToken
(
Token
):
12
def
__init__
(self, name):
13
self.
name
= name
14
self.
spelling
= name
15
16
17
keyword_tokens: List[Token] = [
18
KwToken
(
"if"
),
19
KwToken
(
"then"
),
20
KwToken
(
"else"
),
21
KwToken
(
"assert"
),
22
KwToken
(
"with"
),
23
KwToken
(
"let"
),
24
KwToken
(
"in"
),
25
KwToken
(
"rec"
),
26
KwToken
(
"inherit"
),
27
KwToken
(
"or"
),
28
]
29
30
31
class
OpToken
(
Token
):
32
pass
33
34
35
bin_op_tokens: List[Token] = [
36
OpToken(
"not"
,
"!"
),
37
OpToken(
"impl"
,
"->"
),
38
OpToken(
"or"
,
"||"
),
39
OpToken(
"and"
,
"&&"
),
40
OpToken(
"eq"
,
"=="
),
41
OpToken(
"neq"
,
"!="
),
42
OpToken(
"lt"
,
"<"
),
43
OpToken(
"gt"
,
">"
),
44
OpToken(
"le"
,
"<="
),
45
OpToken(
"ge"
,
">="
),
46
OpToken(
"update"
,
"//"
),
47
OpToken(
"add"
,
"+"
),
48
OpToken(
"negate"
,
"-"
),
49
OpToken(
"mul"
,
"*"
),
50
OpToken(
"div"
,
"/"
),
51
OpToken(
"concat"
,
"++"
),
52
OpToken(
"pipe_into"
,
"|>"
),
53
OpToken(
"pipe_from"
,
"<|"
),
54
]
55
56
tokens: List[Token] = [
57
*keyword_tokens,
58
Token
(
"eof"
,
"eof"
),
59
Token
(
"id"
,
"id"
),
60
Token
(
"int"
,
"int"
),
61
Token
(
"float"
,
"float"
),
62
Token
(
"dquote"
,
'"'
),
63
Token
(
"string_part"
,
"string_part"
),
64
Token
(
"string_escape"
,
"string_escape"
),
65
Token
(
"quote2"
,
"''"
),
66
Token
(
"path_fragment"
,
"path_fragment"
),
67
Token
(
"spath"
,
"<path>"
),
68
Token
(
"uri"
,
"uri"
),
69
Token
(
"r_curly"
,
"}"
),
70
Token
(
"dollar_curly"
,
"${"
),
71
Token
(
"ellipsis"
,
"..."
),
72
Token
(
"comma"
,
","
),
73
Token
(
"dot"
,
"."
),
74
Token
(
"semi_colon"
,
";"
),
75
Token
(
"eq"
,
"="
),
76
Token
(
"l_curly"
,
"{"
),
77
Token
(
"l_paren"
,
"("
),
78
Token
(
"r_paren"
,
")"
),
79
Token
(
"l_bracket"
,
"["
),
80
Token
(
"r_bracket"
,
"]"
),
81
Token
(
"question"
,
"?"
),
82
Token
(
"at"
,
"@"
),
83
Token
(
"colon"
,
":"
),
84
Token
(
"unknown"
,
"unknown"
),
85
Token
(
"path_end"
,
"path_end"
),
86
*bin_op_tokens,
87
]
tokens.KwToken
Definition
tokens.py:11
tokens.KwToken.spelling
spelling
Definition
tokens.py:14
tokens.KwToken.__init__
__init__(self, name)
Definition
tokens.py:12
tokens.KwToken.name
name
Definition
tokens.py:13
tokens.OpToken
Definition
tokens.py:31
tokens.Token
Definition
tokens.py:6
Generated by
1.13.0