nixd
Loading...
Searching...
No Matches
libnixf
src
Parse
TokenKinds.inc.py
Go to the documentation of this file.
1
from
tokens
import
bin_op_tokens, keyword_tokens, tokens
2
3
4
def
generate_token_section
(section_name: str, tokens: list) -> str:
5
if
not
tokens:
6
return
""
7
8
section = [f
"#ifdef {section_name}"
]
9
section.extend(f
"{section_name}({token.name})"
for
token
in
tokens)
10
section.append(f
"#endif // {section_name}\n"
)
11
12
return
"\n"
.join(section)
13
14
15
def
generate_token_kinds_inc
() -> str:
16
sections = [
17
generate_token_section
(
"TOK_KEYWORD"
, keyword_tokens),
18
generate_token_section
(
"TOK"
, tokens),
19
generate_token_section
(
"TOK_BIN_OP"
, bin_op_tokens),
20
]
21
22
return
"\n"
.join(filter(
None
, sections)).strip()
23
24
25
if
__name__ ==
"__main__"
:
26
import
sys
27
28
with
open(sys.argv[1],
"w"
)
as
f:
29
f.write(
generate_token_kinds_inc
())
TokenKinds.generate_token_kinds_inc
str generate_token_kinds_inc()
Definition
TokenKinds.inc.py:15
TokenKinds.generate_token_section
str generate_token_section(str section_name, list tokens)
Definition
TokenKinds.inc.py:4
Generated by
1.13.2