llmcc_python/
token.rs

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 tokens (Python keywords and punctuation) - use actual tree-sitter-python kind_ids
9    (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 tokens
25    (identifier,            1,   "identifier",           HirKind::Identifier),
26
27    // Root node
28    (source_file,           108, "module",               HirKind::File,      BlockKind::Root),
29
30    // Scope-creating nodes
31    (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 statements
37    (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    // Function-related
43    (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    // Decorators
48    (decorator,             159, "decorator",           HirKind::Internal),
49
50    // Call and attribute
51    (call,                  206, "call",                HirKind::Internal,  BlockKind::Call),
52    (attribute,             203, "attribute",           HirKind::Internal),
53
54    // Expressions
55    (assignment,            198, "assignment",          HirKind::Internal),
56    (binary_operator,       191, "binary_operator",     HirKind::Internal),
57    (comparison_operator,   195, "comparison_operator", HirKind::Internal),
58
59    // Type annotations
60    (type_node,             208, "type",                HirKind::Internal),
61    (type_parameter,        155, "type_parameter",      HirKind::Internal),
62
63    // Other statements
64    (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    // Collections
73    (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 IDs (tree-sitter field IDs for accessing named children)
78    (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}