lambda-graphs 0.1.4__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 (45) hide show
  1. lambda_graphs/__init__.py +18 -0
  2. lambda_graphs/__main__.py +7 -0
  3. lambda_graphs/cli.py +183 -0
  4. lambda_graphs/codeviews/AST/AST.py +120 -0
  5. lambda_graphs/codeviews/AST/AST_driver.py +37 -0
  6. lambda_graphs/codeviews/AST/__init__.py +0 -0
  7. lambda_graphs/codeviews/CFG/CFG.py +42 -0
  8. lambda_graphs/codeviews/CFG/CFG_c.py +1182 -0
  9. lambda_graphs/codeviews/CFG/CFG_cpp.py +5604 -0
  10. lambda_graphs/codeviews/CFG/CFG_driver.py +45 -0
  11. lambda_graphs/codeviews/CFG/CFG_java.py +1722 -0
  12. lambda_graphs/codeviews/CFG/__init__.py +0 -0
  13. lambda_graphs/codeviews/CST/CST_driver.py +70 -0
  14. lambda_graphs/codeviews/CST/__init__.py +0 -0
  15. lambda_graphs/codeviews/DFG/DFG_driver.py +42 -0
  16. lambda_graphs/codeviews/DFG/__init__.py +0 -0
  17. lambda_graphs/codeviews/SDFG/SDFG.py +135 -0
  18. lambda_graphs/codeviews/SDFG/SDFG_c.py +2041 -0
  19. lambda_graphs/codeviews/SDFG/SDFG_cpp.py +4030 -0
  20. lambda_graphs/codeviews/SDFG/SDFG_java.py +1618 -0
  21. lambda_graphs/codeviews/SDFG/__init__.py +0 -0
  22. lambda_graphs/codeviews/__init__.py +0 -0
  23. lambda_graphs/codeviews/combined_graph/__init__.py +0 -0
  24. lambda_graphs/codeviews/combined_graph/combined_driver.py +163 -0
  25. lambda_graphs/tree_parser/__init__.py +0 -0
  26. lambda_graphs/tree_parser/c_parser.py +565 -0
  27. lambda_graphs/tree_parser/cpp_parser.py +424 -0
  28. lambda_graphs/tree_parser/custom_parser.py +66 -0
  29. lambda_graphs/tree_parser/java_parser.py +254 -0
  30. lambda_graphs/tree_parser/parser_driver.py +54 -0
  31. lambda_graphs/utils/DFG_utils.py +44 -0
  32. lambda_graphs/utils/__init__.py +0 -0
  33. lambda_graphs/utils/c_nodes.py +431 -0
  34. lambda_graphs/utils/cpp_nodes.py +1331 -0
  35. lambda_graphs/utils/java_nodes.py +756 -0
  36. lambda_graphs/utils/multi_file_merger.py +444 -0
  37. lambda_graphs/utils/postprocessor.py +83 -0
  38. lambda_graphs/utils/preprocessor.py +68 -0
  39. lambda_graphs/utils/src_parser.py +23 -0
  40. lambda_graphs-0.1.4.dist-info/METADATA +380 -0
  41. lambda_graphs-0.1.4.dist-info/RECORD +45 -0
  42. lambda_graphs-0.1.4.dist-info/WHEEL +5 -0
  43. lambda_graphs-0.1.4.dist-info/entry_points.txt +2 -0
  44. lambda_graphs-0.1.4.dist-info/licenses/LICENSE +21 -0
  45. lambda_graphs-0.1.4.dist-info/top_level.txt +1 -0
@@ -0,0 +1,380 @@
1
+ Metadata-Version: 2.4
2
+ Name: lambda-graphs
3
+ Version: 0.1.4
4
+ Summary: Generate combined multi-code view graphs
5
+ Home-page: https://github.com/PrinOrange/lambda-graphs
6
+ License: Apache-2.0
7
+ Classifier: License :: OSI Approved :: Apache Software License
8
+ Classifier: Operating System :: OS Independent
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3 :: Only
11
+ Classifier: Programming Language :: Python :: 3.8
12
+ Classifier: Programming Language :: Python :: Implementation :: CPython
13
+ Requires-Python: >=3.8
14
+ Description-Content-Type: text/markdown
15
+ License-File: LICENSE
16
+ Requires-Dist: networkx==2.6.3
17
+ Requires-Dist: tree-sitter>=0.22
18
+ Requires-Dist: tree-sitter-c
19
+ Requires-Dist: tree-sitter-cpp
20
+ Requires-Dist: tree-sitter-java
21
+ Requires-Dist: deepdiff>=7.0.0
22
+ Requires-Dist: pydot==1.4.1
23
+ Requires-Dist: typer>=0.9.0
24
+ Requires-Dist: loguru==0.6.0
25
+ Requires-Dist: setuptools>=69.0; python_version >= "3.12"
26
+ Provides-Extra: dev
27
+ Requires-Dist: tqdm; extra == "dev"
28
+ Requires-Dist: pqdm; extra == "dev"
29
+ Requires-Dist: loguru; extra == "dev"
30
+ Requires-Dist: GitPython; extra == "dev"
31
+ Requires-Dist: pandas; extra == "dev"
32
+ Dynamic: license-file
33
+
34
+ # lambda-graphs: Multi-View Code Representation Tool for C, C++ and Java Source Programs
35
+
36
+ lambda-graphs aims to generate combined multi-code view graphs that can be used with various types of machine learning models (sequence models, graph neural networks, etc).
37
+
38
+ Tool Demonstration link: [https://youtu.be/50DvEbenp14](https://youtu.be/50DvEbenp14)
39
+
40
+ ## Overview
41
+
42
+ `lambda-graphs` is a CLI tool for generating customized source code representations from C and C++ programs. Currently, `lambda-graphs` generates codeviews for C and C++, supporting both method-level and file-level code snippets. `lambda-graphs` can be used to generate over 7 possible combinations of codeviews for both languages, including:
43
+
44
+ - **AST** (Abstract Syntax Tree)
45
+ - **CFG** (Control Flow Graph)
46
+ - **DFG** (Data Flow Graph)
47
+ - **Combined graphs** (any combination of the above)
48
+
49
+ `lambda-graphs` is designed to be easily extendable to various programming languages. This is primarily because we use [tree-sitter](https://tree-sitter.github.io/tree-sitter/), a highly efficient incremental parser that supports over 40 languages.
50
+
51
+ ---
52
+ ## Setup
53
+
54
+ There are two ways to set up lambda-graphs: using Docker (recommended for quick usage) or using a Python virtual environment (recommended for development).
55
+
56
+ ### Option 1: Docker Setup (Recommended for Quick Usage)
57
+
58
+ Docker provides an isolated environment with all dependencies pre-installed.
59
+
60
+ **1. Build the Docker image:**
61
+ ```console
62
+ docker build -t lambda-graphs .
63
+ ```
64
+
65
+ That's it! You're ready to generate graphs using Docker.
66
+
67
+ ### Option 2: Virtual Environment Setup (Recommended for Development)
68
+
69
+ **1. Create a new virtual environment:**
70
+ ```console
71
+ python -m venv .venv
72
+ ```
73
+
74
+ **2. Activate the environment:**
75
+ ```console
76
+ source .venv/bin/activate # On Linux/Mac
77
+ # or
78
+ .venv\Scripts\activate # On Windows
79
+ ```
80
+
81
+ **3. Install the package in development mode:**
82
+ ```console
83
+ pip install -e .
84
+ ```
85
+
86
+ **4. Install GraphViz (Optional - for visualization):**
87
+
88
+ GraphViz is only required if you want to generate DOT or PNG output files.
89
+
90
+ **Ubuntu/Debian:**
91
+ ```console
92
+ sudo apt install graphviz
93
+ ```
94
+
95
+ **MacOS:**
96
+ ```console
97
+ brew install graphviz
98
+ ```
99
+
100
+ **Windows:**
101
+ Download from [graphviz.org](https://graphviz.org/download/)
102
+
103
+ ---
104
+ ## Generating Graphs
105
+
106
+ There are two ways to generate graphs: using Docker or using the CLI directly (after virtual environment setup).
107
+
108
+ ### Option 1: Using Docker
109
+
110
+ Docker commands mount your current directory to `/work` inside the container, so output files appear in your working directory.
111
+
112
+ **Single File Analysis:**
113
+ ```console
114
+ docker run --rm -v "$(pwd):/work" -w /work lambda-graphs \
115
+ --lang cpp \
116
+ --code-file ./examples/single/test_single.cpp \
117
+ --graphs "ast,cfg,dfg" \
118
+ --output all
119
+ ```
120
+
121
+ **Folder Analysis (Multi-file Projects):**
122
+ ```console
123
+ docker run --rm -v "$(pwd):/work" -w /work lambda-graphs \
124
+ --lang c \
125
+ --code-folder ./examples/multi \
126
+ --combined-name "multi_file_example" \
127
+ --graphs "cfg,dfg" \
128
+ --output all
129
+ ```
130
+
131
+ **With Additional Options:**
132
+ ```console
133
+ # Generate only JSON output
134
+ docker run --rm -v "$(pwd):/work" -w /work lambda-graphs \
135
+ --lang c \
136
+ --code-file ./examples/single/test_single.c \
137
+ --graphs cfg \
138
+ --output json
139
+
140
+ # With collapsed nodes and last-def tracking
141
+ docker run --rm -v "$(pwd):/work" -w /work lambda-graphs \
142
+ --lang c \
143
+ --code-file ./examples/single/test_single.c \
144
+ --graphs "ast,dfg" \
145
+ --collapsed \
146
+ --last-def \
147
+ --output all
148
+ ```
149
+
150
+ ### Option 2: Using Example Scripts
151
+
152
+ The `examples/scripts/` folder contains ready-to-use bash scripts that automatically build the Docker image and run lambda-graphs on a target file or folder, generating CFG, DFG, and AST outputs. Each script handles the build, graph generation, and output file renaming in one step.
153
+
154
+ To run a script, make it executable and execute it from the repository root:
155
+
156
+ ```console
157
+ chmod +x examples/scripts/single_test_single.sh
158
+ ./examples/scripts/single_test_single.sh
159
+ ```
160
+
161
+ Output files will appear in the `output/` directory, named after the source file and view (e.g. `test_single_cfg.png`, `test_single_dfg.json`).
162
+
163
+ ---
164
+
165
+ ### Option 3: Using CLI Directly
166
+
167
+ After setting up via virtual environment, use the `lambda-graphs` command directly.
168
+
169
+ **Output Location:** All generated files (JSON, DOT, PNG) are saved to the `output/` directory in your current working directory. The directory is created automatically if it doesn't exist.
170
+
171
+ The attributes and options supported by the CLI are well documented and can be viewed by running:
172
+ ```console
173
+ lambda-graphs --help
174
+ ```
175
+
176
+ **Single File Analysis:**
177
+
178
+ Generate a combined CFG and DFG graph for a C++ file:
179
+ ```console
180
+ lambda-graphs --lang "cpp" --code-file ./test.cpp --graphs "cfg,dfg"
181
+ ```
182
+
183
+ Generate an AST for a C file with output in JSON format:
184
+ ```console
185
+ lambda-graphs --lang "c" --code-file ./example.c --graphs "ast" --output "json"
186
+ ```
187
+
188
+ **Folder Analysis (Multi-file Projects):**
189
+
190
+ lambda-graphs can analyze entire projects by combining multiple source files from a folder:
191
+
192
+ ```console
193
+ lambda-graphs --lang "c" --code-folder ./project/src --graphs "cfg,dfg" --output "json"
194
+ ```
195
+
196
+ This will:
197
+ 1. Recursively scan the folder for all `.c` and `.h` files
198
+ 2. Combine them into a single temporary file (preserving includes, declarations, definitions)
199
+ 3. Generate the requested codeviews from the combined source
200
+ 4. Output results to the `output/` directory
201
+
202
+ You can customize the combined output file name:
203
+ ```console
204
+ lambda-graphs --lang "cpp" --code-folder ./mylib --combined-name "myproject" --graphs "ast,cfg"
205
+ ```
206
+
207
+ **Inline Code Analysis:**
208
+
209
+ You can also analyze code snippets directly without a file:
210
+ ```console
211
+ lambda-graphs --lang "c" --code "int main() { int x = 5; return x; }" --graphs "ast,cfg"
212
+ ```
213
+
214
+ **Additional CLI Options:**
215
+
216
+ | Option | Description |
217
+ |--------|-------------|
218
+ | `--output` | Output format: `json`, `dot`, or `all` (dot also generates PNG). Default: `dot` |
219
+ | `--collapsed` | Collapse duplicate variable nodes into a single node in AST |
220
+ | `--last-def` | Add last definition information to DFG edges (shows where variables were last defined) |
221
+ | `--blacklisted` | Comma-separated list of AST node types to exclude from the graph |
222
+
223
+ **Flag-Codeview Compatibility:**
224
+
225
+ | Flag | AST | CFG | DFG |
226
+ |------|:---:|:---:|:---:|
227
+ | `--collapsed` | ✓ | ✗ | ✗ |
228
+ | `--blacklisted` | ✓ | ✗ | ✗ |
229
+ | `--last-def` | ✗ | ✗ | ✓ |
230
+ | `--last-use` | ✗ | ✗ | ✓ |
231
+
232
+ **Examples:**
233
+
234
+ ```console
235
+ # Generate all output formats (DOT, JSON, PNG)
236
+ lambda-graphs --lang "c" --code-file test.c --graphs "cfg" --output "all"
237
+
238
+ # Collapse duplicate variable nodes in DFG
239
+ lambda-graphs --lang "cpp" --code-file test.cpp --graphs "ast" --collapsed
240
+
241
+ # Add last definition tracking to DFG
242
+ lambda-graphs --lang "c" --code-file test.c --graphs "dfg" --last-def
243
+
244
+ # Exclude specific AST node types
245
+ lambda-graphs --lang "c" --code-file test.c --graphs "ast,cfg" --blacklisted "comment,string_literal"
246
+ ```
247
+
248
+ ---
249
+ ## Limitations
250
+
251
+ While `lambda-graphs` provides _method-level_ and _file-level_ support for both C and C++, it's important to note the following limitations and known issues:
252
+
253
+ ### General Limitations
254
+ - **Syntax Errors in Code**: To ensure accurate codeviews, the input code must be free of syntax errors. Code with syntax errors may not be correctly parsed and displayed in the generated codeviews. Note that the code does not need to be compilable, only syntactically valid.
255
+
256
+ ### C++ Specific Limitations
257
+ In addition to the general limitations, the tool has the following limitations specific to C++:
258
+
259
+ - **Limited Template Metaprogramming Support**: Complex template metaprogramming patterns may not be fully captured in the generated codeviews.
260
+
261
+ - **Partial Preprocessor Directive Support**: Preprocessor directives (e.g., `#define`, `#ifdef`) are parsed but not fully processed. Conditional compilation may not be accurately reflected in the codeviews.
262
+
263
+ - **Limited Support for Advanced C++ Features**: Some advanced C++ features such as:
264
+ - Complex inheritance hierarchies
265
+ - Multiple inheritance with virtual functions
266
+ - Template specializations
267
+ - SFINAE patterns
268
+ - Concepts (C++20)
269
+
270
+ may not be fully represented in the generated codeviews.
271
+
272
+ ---
273
+
274
+ ## Output Examples
275
+
276
+ ### Example 1: C++ Function Pointers and Control Flow
277
+
278
+ **CLI Command**:
279
+
280
+ ```bash
281
+ lambda-graphs --lang "cpp" --code-file paper_assets/function_pointers.cpp --graphs "cfg,dfg"
282
+ ```
283
+ ---
284
+
285
+ **C++ Code Snippet** ([function_pointers.cpp](paper_assets/function_pointers.cpp)):
286
+
287
+ ```cpp
288
+ #include <iostream>
289
+ void f1(int times) {
290
+ if(!times)
291
+ return;
292
+ std::cout << "In f1()\n";
293
+ f1(times-1);
294
+ }
295
+ void f2() {
296
+ std::cout << "In f2()\n";
297
+ }
298
+ int main() {
299
+ void (*fptr_1)(int);
300
+ void (*fptr_2)(void);
301
+ fptr_1 = &f1;
302
+ fptr_2 = &f2;
303
+
304
+ int var = 0;
305
+ std::cin >> var;
306
+ (var > 0) ? fptr_1(3) : fptr_2();
307
+ }
308
+ ```
309
+ ---
310
+
311
+ **Generated Codeview**:
312
+
313
+ ![C++ Function Pointers Example](paper_assets/function_pointers_cfg_dfg.png)
314
+
315
+ ---
316
+
317
+ ### Example 2: C++ Class with Pass-by-Reference
318
+
319
+ **CLI Command**:
320
+
321
+ ```bash
322
+ lambda-graphs --lang "cpp" --code-file paper_assets/pass_by_reference.cpp --graphs "cfg,dfg"
323
+ ```
324
+ ---
325
+
326
+ **C++ Code Snippet** ([pass_by_reference.cpp](paper_assets/pass_by_reference.cpp)):
327
+
328
+ ```cpp
329
+ #include <iostream>
330
+
331
+ class TestClass {
332
+ public:
333
+ int x;
334
+ TestClass(int _x) {
335
+ x = _x + 20;
336
+ }
337
+ void f1(int& a) {
338
+ a += 100;
339
+ a -= x;
340
+ }
341
+ };
342
+ int main() {
343
+ TestClass obj(30);
344
+ int k = 0;
345
+ obj.f1(k);
346
+ std::cout << k; // prints 50
347
+ return 0;
348
+ }
349
+ ```
350
+ ---
351
+
352
+ **Generated Codeview**:
353
+
354
+ ![C++ Class Example](paper_assets/pass_by_reference_cfg_dfg.png)
355
+
356
+ ---
357
+
358
+ ## Code Organization
359
+
360
+ The code is structured in the following way:
361
+
362
+ 1. **Preprocessing** (`src/lambda_graphs/utils/`): The `multi_file_merger.py` module combines multiple source files from a folder into a single file for analysis.
363
+
364
+ 2. **Parsing** (`src/lambda_graphs/tree_parser/`): For each code-view, first the source code is parsed using the tree-sitter parser. The Parser and ParserDriver are implemented with various functionalities commonly required by all code-views. Language-specific features are further developed in the language-specific parsers (`c_parser.py`, `cpp_parser.py`).
365
+
366
+ 3. **Codeview Generation** (`src/lambda_graphs/codeviews/`): This directory contains the core logic for the various codeviews:
367
+ - `AST/` - Abstract Syntax Tree (language-agnostic)
368
+ - `CFG/` - Control Flow Graph (language-specific: `CFG_c.py`, `CFG_cpp.py`)
369
+ - `DFG/` - Data Flow Graph (language-agnostic)
370
+ - `combined_graph/` - Combines multiple codeviews into a single graph
371
+
372
+ 4. **CLI Entry Point** (`src/lambda_graphs/cli.py`): The CLI implementation using Typer. The drivers can also be directly imported and used as a Python package.
373
+
374
+ 5. **Node Definitions** (`src/lambda_graphs/utils/`): `c_nodes.py` and `cpp_nodes.py` define AST node type categorizations used throughout the codebase.
375
+
376
+ ---
377
+
378
+ ## Acknowledgments
379
+
380
+ This tool builds upon the tree-sitter parsing framework and is inspired by research on source code representation learning for AI-driven software engineering tasks.
@@ -0,0 +1,45 @@
1
+ lambda_graphs/__init__.py,sha256=S2v6SCVa7xEjnOZQneNVt1DyVOya1CBRAxz2bxJfqkg,503
2
+ lambda_graphs/__main__.py,sha256=pqqaM3Xr6Ypfhy0Y8xUxkPT-hKy9L_Erl9X08cZHT3o,106
3
+ lambda_graphs/cli.py,sha256=HsUd68wBhuYkGaqZNJnIpBRmDGyeFCnMy_MzTjGOKm0,5557
4
+ lambda_graphs/codeviews/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ lambda_graphs/codeviews/AST/AST.py,sha256=1CQyadl9_3lRK5qkX-UzBdmzn_6Q9fahdluGELZrLAQ,4270
6
+ lambda_graphs/codeviews/AST/AST_driver.py,sha256=rmhodB78EeUhq04o0Vy81fY93FwT4vS7UgiF0JOWClw,1138
7
+ lambda_graphs/codeviews/AST/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
+ lambda_graphs/codeviews/CFG/CFG.py,sha256=odnnX7UXu1-iTmJoZ6V_76tU3Dw4qi9cwxws4x744sc,1528
9
+ lambda_graphs/codeviews/CFG/CFG_c.py,sha256=4styP_yI9SmHROER_PKCPcK4FiNJpXm5cySGtYxVFlA,48545
10
+ lambda_graphs/codeviews/CFG/CFG_cpp.py,sha256=_0gXWOJtTgIHw64Mav2k5WVNle-9P55m01UdSxFMZBE,252466
11
+ lambda_graphs/codeviews/CFG/CFG_driver.py,sha256=iYqxFwdob634qm0CDjXZM19W6veFB7n03ErzXaolDtQ,1334
12
+ lambda_graphs/codeviews/CFG/CFG_java.py,sha256=2DZBiwdev8MpCb1Eu6NGmnIpweRM_ZpeiPzWwQBF5f0,85722
13
+ lambda_graphs/codeviews/CFG/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ lambda_graphs/codeviews/CST/CST_driver.py,sha256=1LLax-qYbl_63DDnCnQo8qeLOoFDc5PqjXuIFINa-bs,2387
15
+ lambda_graphs/codeviews/CST/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ lambda_graphs/codeviews/DFG/DFG_driver.py,sha256=iLi2H94TQFN-trXxpfaVcz7NzMeGc-zq3vdHs1L9rGs,1333
17
+ lambda_graphs/codeviews/DFG/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ lambda_graphs/codeviews/SDFG/SDFG.py,sha256=fvIhr6uUuYBmUkrFae7x8b88H-tuuZGINaundZab10E,4304
19
+ lambda_graphs/codeviews/SDFG/SDFG_c.py,sha256=2SXLh4flQ_7aHFAqvE6xdMqZ8HY07aqmDNNMADqvBVE,80365
20
+ lambda_graphs/codeviews/SDFG/SDFG_cpp.py,sha256=PsQcTVNyFziXEKgAosiL2Uq6rHORBUSr-LwVLTGhSZU,158990
21
+ lambda_graphs/codeviews/SDFG/SDFG_java.py,sha256=ug2IHsd0D5dfIvQsCuS2PROft703b65AJeyUyYC0_zw,67012
22
+ lambda_graphs/codeviews/SDFG/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ lambda_graphs/codeviews/combined_graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ lambda_graphs/codeviews/combined_graph/combined_driver.py,sha256=e_GjoRfl5IcEcQ56JGp3Jn71sJkI2S4CKysyS70lH5M,5490
25
+ lambda_graphs/tree_parser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ lambda_graphs/tree_parser/c_parser.py,sha256=ekvA_LTZjalNvzW7LyG27hZOLRh6zzIo-ypR8kCmyrg,21926
27
+ lambda_graphs/tree_parser/cpp_parser.py,sha256=CZ6q0_O5t09HAIBtlfPp1MhUQwbwW49rmaoMCuN0lek,15617
28
+ lambda_graphs/tree_parser/custom_parser.py,sha256=NBS7ZvBh-RAG3RNUlm4iYFWIOggeDQNsPGvGcGuIwvw,2118
29
+ lambda_graphs/tree_parser/java_parser.py,sha256=R7La6BBZfhn7gRNRzwOC2MP1gpnInC0SIi7UenR5MZI,10835
30
+ lambda_graphs/tree_parser/parser_driver.py,sha256=tsDpef6KgWeEpsqoou3vHf9y_ivprULV7SWJX4rLC9Y,1792
31
+ lambda_graphs/utils/DFG_utils.py,sha256=ESVGnmci7fE4vuuoCYI4KViW5ODZrvNLSZxOt8W26o0,1647
32
+ lambda_graphs/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
+ lambda_graphs/utils/c_nodes.py,sha256=_01qu1oRMS_bdsl9KNTfl89doQ21qqZdyXNz8yBaFpU,14754
34
+ lambda_graphs/utils/cpp_nodes.py,sha256=1LhL78EOHjGyDQnCi1Tb6bPfpUEAFb_TGJU_GVfh7vg,49242
35
+ lambda_graphs/utils/java_nodes.py,sha256=mx3zlhMzZTv0vDvvxKWOagfL1YcopMWXga-OEiJHS_s,27637
36
+ lambda_graphs/utils/multi_file_merger.py,sha256=w4n5YpO9-m87wT8vX93L47mDnqW2pGHo_MxV7E2Vhqw,15623
37
+ lambda_graphs/utils/postprocessor.py,sha256=wVdKWhZ1EyFJjkiRm4V9i2ToOLsiz0hEbqudKRAbPKQ,2583
38
+ lambda_graphs/utils/preprocessor.py,sha256=tNNvCqBrXkfIEt4dj31Zv3eYrWcdxA4d0emdi0BBJeQ,1991
39
+ lambda_graphs/utils/src_parser.py,sha256=KI8jp1rGy92FDU6ZSAyvAlTXIqRvwaBU8Nyk1_PLQc0,630
40
+ lambda_graphs-0.1.4.dist-info/licenses/LICENSE,sha256=A4IQBtKltZRdmeznEO-WkeUNgar9pYrAnnqgwuPM7eo,1078
41
+ lambda_graphs-0.1.4.dist-info/METADATA,sha256=lsLn3OI8ztoYrjIUkmtcH60WMdXeKuN_uoGwWMsY8ww,12293
42
+ lambda_graphs-0.1.4.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
43
+ lambda_graphs-0.1.4.dist-info/entry_points.txt,sha256=hELYD6w17o_ccUXd3p97Dx8-aBj123HLc1to4otGONo,56
44
+ lambda_graphs-0.1.4.dist-info/top_level.txt,sha256=BeOCfsbh498OkGRd1Bc8Z5HnUp_C3KfpOJ7u_dbd9Qk,14
45
+ lambda_graphs-0.1.4.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (83.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ lambda-graphs = lambda_graphs.cli:app
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jaid Monwar Chowdhury
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ lambda_graphs