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.
- agent_codinglanguage_mapper/__init__.py +20 -0
- agent_codinglanguage_mapper/__main__.py +4 -0
- agent_codinglanguage_mapper/_version.py +2 -0
- agent_codinglanguage_mapper/adapters/__init__.py +4 -0
- agent_codinglanguage_mapper/adapters/delphi.py +822 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/__init__.py +6 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/comment_builder.py +29 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/consts.py +345 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/grammar.py +460 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/lark_builder.py +2674 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/lark_tokens.py +237 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/lsp_server.py +1832 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/nodes.py +371 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/parser.py +193 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/preprocessor.py +997 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/project_discovery.py +518 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/project_indexer.py +319 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/semantic.py +375 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/semantic_builder.py +1384 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/source_reader.py +17 -0
- agent_codinglanguage_mapper/adapters/delphi_frontend/workspace.py +67 -0
- agent_codinglanguage_mapper/adapters/tree_sitter.py +1722 -0
- agent_codinglanguage_mapper/cli.py +138 -0
- agent_codinglanguage_mapper/discovery.py +1328 -0
- agent_codinglanguage_mapper/indexer.py +1102 -0
- agent_codinglanguage_mapper/integration.py +186 -0
- agent_codinglanguage_mapper/lsp_server.py +413 -0
- agent_codinglanguage_mapper/lsp_service.py +447 -0
- agent_codinglanguage_mapper/mapper.py +596 -0
- agent_codinglanguage_mapper/models.py +101 -0
- agent_codinglanguage_mapper/protocol.py +152 -0
- agent_codinglanguage_mapper/rendering.py +153 -0
- agent_codinglanguage_mapper/templates/opencode/plugins/codebase_map.ts +191 -0
- agent_codinglanguage_mapper/templates/skill/SKILL.md +52 -0
- agent_codinglanguage_mapper/worker.py +29 -0
- agent_codinglanguage_mapper/workspace.py +114 -0
- agent_codinglanguage_mapper-1.0.0.dist-info/METADATA +383 -0
- agent_codinglanguage_mapper-1.0.0.dist-info/RECORD +42 -0
- agent_codinglanguage_mapper-1.0.0.dist-info/WHEEL +5 -0
- agent_codinglanguage_mapper-1.0.0.dist-info/entry_points.txt +2 -0
- agent_codinglanguage_mapper-1.0.0.dist-info/licenses/LICENSE +373 -0
- 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])
|