nixd
Loading...
Searching...
No Matches
tokens.py
Go to the documentation of this file.
1from dataclasses import dataclass
2from typing import List
3
4
5@dataclass
6class Token:
7 name: str
8 spelling: str
9
10
12 def __init__(self, name):
13 self.name = name
14 self.spelling = name
15
16
17keyword_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
32 pass
33
34
35bin_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
56tokens: 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]
__init__(self, name)
Definition tokens.py:12