agent-codinglanguage-mapper 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. agent_codinglanguage_mapper/__init__.py +20 -0
  2. agent_codinglanguage_mapper/__main__.py +4 -0
  3. agent_codinglanguage_mapper/_version.py +2 -0
  4. agent_codinglanguage_mapper/adapters/__init__.py +4 -0
  5. agent_codinglanguage_mapper/adapters/delphi.py +822 -0
  6. agent_codinglanguage_mapper/adapters/delphi_frontend/__init__.py +6 -0
  7. agent_codinglanguage_mapper/adapters/delphi_frontend/comment_builder.py +29 -0
  8. agent_codinglanguage_mapper/adapters/delphi_frontend/consts.py +345 -0
  9. agent_codinglanguage_mapper/adapters/delphi_frontend/grammar.py +460 -0
  10. agent_codinglanguage_mapper/adapters/delphi_frontend/lark_builder.py +2674 -0
  11. agent_codinglanguage_mapper/adapters/delphi_frontend/lark_tokens.py +237 -0
  12. agent_codinglanguage_mapper/adapters/delphi_frontend/lsp_server.py +1832 -0
  13. agent_codinglanguage_mapper/adapters/delphi_frontend/nodes.py +371 -0
  14. agent_codinglanguage_mapper/adapters/delphi_frontend/parser.py +193 -0
  15. agent_codinglanguage_mapper/adapters/delphi_frontend/preprocessor.py +997 -0
  16. agent_codinglanguage_mapper/adapters/delphi_frontend/project_discovery.py +518 -0
  17. agent_codinglanguage_mapper/adapters/delphi_frontend/project_indexer.py +319 -0
  18. agent_codinglanguage_mapper/adapters/delphi_frontend/semantic.py +375 -0
  19. agent_codinglanguage_mapper/adapters/delphi_frontend/semantic_builder.py +1384 -0
  20. agent_codinglanguage_mapper/adapters/delphi_frontend/source_reader.py +17 -0
  21. agent_codinglanguage_mapper/adapters/delphi_frontend/workspace.py +67 -0
  22. agent_codinglanguage_mapper/adapters/tree_sitter.py +1722 -0
  23. agent_codinglanguage_mapper/cli.py +138 -0
  24. agent_codinglanguage_mapper/discovery.py +1328 -0
  25. agent_codinglanguage_mapper/indexer.py +1102 -0
  26. agent_codinglanguage_mapper/integration.py +186 -0
  27. agent_codinglanguage_mapper/lsp_server.py +413 -0
  28. agent_codinglanguage_mapper/lsp_service.py +447 -0
  29. agent_codinglanguage_mapper/mapper.py +596 -0
  30. agent_codinglanguage_mapper/models.py +101 -0
  31. agent_codinglanguage_mapper/protocol.py +152 -0
  32. agent_codinglanguage_mapper/rendering.py +153 -0
  33. agent_codinglanguage_mapper/templates/opencode/plugins/codebase_map.ts +191 -0
  34. agent_codinglanguage_mapper/templates/skill/SKILL.md +52 -0
  35. agent_codinglanguage_mapper/worker.py +29 -0
  36. agent_codinglanguage_mapper/workspace.py +114 -0
  37. agent_codinglanguage_mapper-1.0.0.dist-info/METADATA +383 -0
  38. agent_codinglanguage_mapper-1.0.0.dist-info/RECORD +42 -0
  39. agent_codinglanguage_mapper-1.0.0.dist-info/WHEEL +5 -0
  40. agent_codinglanguage_mapper-1.0.0.dist-info/entry_points.txt +2 -0
  41. agent_codinglanguage_mapper-1.0.0.dist-info/licenses/LICENSE +373 -0
  42. agent_codinglanguage_mapper-1.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,237 @@
1
+ from __future__ import annotations
2
+
3
+ import re
4
+
5
+
6
+ KEYWORDS = [
7
+ 'abort',
8
+ 'absolute',
9
+ 'abstract',
10
+ 'add',
11
+ 'align',
12
+ 'and',
13
+ 'ansistring',
14
+ 'array',
15
+ 'as',
16
+ 'asm',
17
+ 'assembler',
18
+ 'at',
19
+ 'automated',
20
+ 'begin',
21
+ 'boolean',
22
+ 'break',
23
+ 'byte',
24
+ 'bytebool',
25
+ 'cardinal',
26
+ 'case',
27
+ 'cdecl',
28
+ 'char',
29
+ 'class',
30
+ 'comp',
31
+ 'const',
32
+ 'constructor',
33
+ 'contains',
34
+ 'continue',
35
+ 'currency',
36
+ 'default',
37
+ 'delayed',
38
+ 'deprecated',
39
+ 'destructor',
40
+ 'dispid',
41
+ 'dispinterface',
42
+ 'div',
43
+ 'do',
44
+ 'double',
45
+ 'downto',
46
+ 'dword',
47
+ 'dynamic',
48
+ 'else',
49
+ 'end',
50
+ 'except',
51
+ 'exit',
52
+ 'experimental',
53
+ 'export',
54
+ 'exports',
55
+ 'extended',
56
+ 'false',
57
+ 'external',
58
+ 'far',
59
+ 'file',
60
+ 'final',
61
+ 'finalization',
62
+ 'finally',
63
+ 'for',
64
+ 'forward',
65
+ 'function',
66
+ 'goto',
67
+ 'halt',
68
+ 'helper',
69
+ 'if',
70
+ 'implementation',
71
+ 'implements',
72
+ 'in',
73
+ 'index',
74
+ 'inherited',
75
+ 'initialization',
76
+ 'inline',
77
+ 'int64',
78
+ 'integer',
79
+ 'interface',
80
+ 'is',
81
+ 'label',
82
+ 'library',
83
+ 'local',
84
+ 'longbool',
85
+ 'longint',
86
+ 'longword',
87
+ 'message',
88
+ 'mod',
89
+ 'namespace',
90
+ 'near',
91
+ 'nil',
92
+ 'noreturn',
93
+ 'nodefault',
94
+ 'null',
95
+ 'not',
96
+ 'object',
97
+ 'of',
98
+ 'olevariant',
99
+ 'on',
100
+ 'operator',
101
+ 'or',
102
+ 'out',
103
+ 'overload',
104
+ 'override',
105
+ 'package',
106
+ 'packed',
107
+ 'pascal',
108
+ 'pchar',
109
+ 'platform',
110
+ 'private',
111
+ 'procedure',
112
+ 'program',
113
+ 'property',
114
+ 'protected',
115
+ 'public',
116
+ 'published',
117
+ 'raise',
118
+ 'read',
119
+ 'readonly',
120
+ 'real',
121
+ 'real48',
122
+ 'record',
123
+ 'reference',
124
+ 'register',
125
+ 'reintroduce',
126
+ 'remove',
127
+ 'repeat',
128
+ 'requires',
129
+ 'resident',
130
+ 'resourcestring',
131
+ 'runerror',
132
+ 'safecall',
133
+ 'sealed',
134
+ 'self',
135
+ 'set',
136
+ 'shl',
137
+ 'shortint',
138
+ 'shortstring',
139
+ 'shr',
140
+ 'single',
141
+ 'smallint',
142
+ 'static',
143
+ 'stdcall',
144
+ 'stored',
145
+ 'strict',
146
+ 'string',
147
+ 'stringresource',
148
+ 'then',
149
+ 'threadvar',
150
+ 'true',
151
+ 'to',
152
+ 'try',
153
+ 'type',
154
+ 'unit',
155
+ 'unmanaged',
156
+ 'unsafe',
157
+ 'until',
158
+ 'uses',
159
+ 'var',
160
+ 'varargs',
161
+ 'variant',
162
+ 'virtual',
163
+ 'while',
164
+ 'widechar',
165
+ 'widestring',
166
+ 'with',
167
+ 'word',
168
+ 'wordbool',
169
+ 'write',
170
+ 'writeonly',
171
+ 'winapi',
172
+ 'xor',
173
+ ]
174
+
175
+ DIRECTIVE_KEYWORDS = [
176
+ 'define',
177
+ 'endif',
178
+ 'ifend',
179
+ 'elseif',
180
+ 'ifdef',
181
+ 'ifndef',
182
+ 'ifopt',
183
+ 'include',
184
+ 'resource',
185
+ 'scopedenums',
186
+ 'undef',
187
+ ]
188
+
189
+ def _keyword_terminal(keyword: str) -> str:
190
+ token_name = f"{keyword.upper()}.2"
191
+ pattern = re.escape(keyword)
192
+ return f"{token_name}: /(?i:{pattern})(?!\\w)/"
193
+
194
+
195
+ KEYWORD_TERMINALS = "\n".join(_keyword_terminal(k) for k in KEYWORDS)
196
+
197
+
198
+ BASE_TERMINALS = r"""
199
+ PROC_TYPE_DIRECTIVE.3: /;[ \t\r\n]*(?i:(cdecl|stdcall|pascal|register|safecall|winapi|varargs))(?:[ \t\r\n]+(?i:varargs))?(?!\w)/
200
+ EMPTY_USES_BEFORE_IMPLEMENTATION.4: /(?i:uses)(?=[ \t\r\n]+implementation\b)/
201
+ COMPILER_ERROR_TEXT.1: /(?![^\r\n]*[:;=])(?:[A-Za-z]+[ \t]+){2,}[A-Za-z][^\r\n]*/
202
+
203
+ // literals
204
+ STRING_BLOCK5: /(?s:'''''(?=\r?\n).*?''''')/
205
+ STRING_BLOCK3: /(?s:'''(?=\r?\n).*?''')/
206
+ STRING_LITERAL: /(?s:'(?:''|[^'])*')/
207
+ CHAR_CODE: /#\$[0-9A-Fa-f_]+|#[0-9_]+/
208
+ POINTER_CHAR.0: /\^[A-Za-z\\](?![A-Za-z0-9_])/
209
+ HEX_INT: /\$[0-9A-Fa-f_]+/
210
+ BIN_INT: /%[01_]+/
211
+ FLOAT: /(?:[0-9][0-9_]*\.(?!\.)[0-9_]*([eE][+-]?[0-9_]+)?|[0-9][0-9_]*[eE][+-]?[0-9_]+)/
212
+ INT: /[0-9][0-9_]*/
213
+
214
+ // identifiers
215
+ STRICT_NAME.3: /(?i:strict)(?=\s*[:,])/
216
+ SPACED_GENERIC_NAME: /&?(?:[_]|[^\W\d_])[\w]*\s*<[^;\r\n]*>\s*(?=\.)/
217
+ GENERIC_NAME: /&?(?:[_]|[^\W\d_])[\w]*<(?:[^<>\r\n]+|<(?:[^<>\r\n]+|<(?:[^<>\r\n]+|<[^<>\r\n]*>)*>)*>)+>/
218
+ NAME: /&?(?:[_]|[^\W\d_])[\w]*/
219
+
220
+ // comments
221
+ COMMENT_BRACE: /(?s:\{.*?\})/
222
+ COMMENT_PAREN: /(?s:\(\*.*?\*\))/
223
+ COMMENT_SLASH: /\/\/[^\n]*/
224
+
225
+ %ignore COMMENT_BRACE
226
+ %ignore COMMENT_PAREN
227
+ %ignore COMMENT_SLASH
228
+
229
+ %import common.WS_INLINE
230
+ %import common.NEWLINE -> _NL
231
+ %ignore WS_INLINE
232
+ %ignore _NL
233
+ """
234
+
235
+
236
+ def build_grammar_snippet() -> str:
237
+ return '\n'.join([KEYWORD_TERMINALS, BASE_TERMINALS])