1use llmcc_core::define_tokens;
2use llmcc_core::graph_builder::BlockKind;
3use llmcc_core::ir::HirKind;
4use llmcc_core::paste;
5
6define_tokens! {
7 Python,
8 (Text_def, 37, "def", HirKind::Text),
10 (Text_class, 45, "class", HirKind::Text),
11 (Text_import, 3, "import", HirKind::Text),
12 (Text_from, 5, "from", HirKind::Text),
13 (Text_as, 10, "as", HirKind::Text),
14 (Text_return, 16, "return", HirKind::Text),
15 (Text_LPAREN, 7, "(", HirKind::Text),
16 (Text_RPAREN, 8, ")", HirKind::Text),
17 (Text_COLON, 23, ":", HirKind::Text),
18 (Text_EQ, 44, "=", HirKind::Text),
19 (Text_COMMA, 9, ",", HirKind::Text),
20 (Text_DOT, 4, ".", HirKind::Text),
21 (Text_ARROW, 38, "->", HirKind::Text),
22 (Text_AT, 48, "@", HirKind::Text),
23
24 (identifier, 1, "identifier", HirKind::Identifier),
26
27 (source_file, 108, "module", HirKind::File, BlockKind::Root),
29
30 (function_definition, 145, "function_definition", HirKind::Scope, BlockKind::Func),
32 (class_definition, 154, "class_definition", HirKind::Scope, BlockKind::Class),
33 (decorated_definition, 158, "decorated_definition", HirKind::Scope),
34 (block, 160, "block", HirKind::Scope, BlockKind::Scope),
35
36 (import_statement, 111, "import_statement", HirKind::Internal),
38 (import_from, 115, "import_from_statement",HirKind::Internal),
39 (aliased_import, 117, "aliased_import", HirKind::Internal),
40 (dotted_name, 162, "dotted_name", HirKind::Internal),
41
42 (parameters, 146, "parameters", HirKind::Internal),
44 (typed_parameter, 207, "typed_parameter", HirKind::Internal),
45 (typed_default_parameter, 182, "typed_default_parameter", HirKind::Internal),
46
47 (decorator, 159, "decorator", HirKind::Internal),
49
50 (call, 206, "call", HirKind::Internal, BlockKind::Call),
52 (attribute, 203, "attribute", HirKind::Internal),
53
54 (assignment, 198, "assignment", HirKind::Internal),
56 (binary_operator, 191, "binary_operator", HirKind::Internal),
57 (comparison_operator, 195, "comparison_operator", HirKind::Internal),
58
59 (type_node, 208, "type", HirKind::Internal),
61 (type_parameter, 155, "type_parameter", HirKind::Internal),
62
63 (expression_statement, 122, "expression_statement", HirKind::Internal),
65 (return_statement, 125, "return_statement", HirKind::Internal),
66 (pass_statement, 128, "pass_statement", HirKind::Internal),
67 (if_statement, 131, "if_statement", HirKind::Internal),
68 (for_statement, 137, "for_statement", HirKind::Internal),
69 (while_statement, 138, "while_statement", HirKind::Internal),
70 (try_statement, 139, "try_statement", HirKind::Internal),
71
72 (argument_list, 157, "argument_list", HirKind::Internal),
74 (expression_list, 161, "expression_list", HirKind::Internal),
75 (keyword_argument, 214, "keyword_argument", HirKind::Internal),
76
77 (field_name, 19, "name", HirKind::Internal),
79 (field_parameters, 31, "parameters", HirKind::Internal),
80 (field_body, 6, "body", HirKind::Internal),
81 (field_type, 32, "type", HirKind::Internal),
82 (field_left, 17, "left", HirKind::Internal),
83 (field_right, 25, "right", HirKind::Internal),
84 (field_function, 14, "function", HirKind::Internal),
85 (field_arguments, 11, "arguments", HirKind::Internal),
86 (field_object, 20, "object", HirKind::Internal),
87 (field_attribute, 21, "attribute", HirKind::Internal),
88}
89
90impl LangPython {
91 pub const SUPPORTED_EXTENSIONS: &'static [&'static str] = &["py"];
92}