vex-ast 0.2.4__py3-none-any.whl → 0.2.6__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 (63) hide show
  1. vex_ast/README.md +101 -51
  2. vex_ast/READMEAPI.md +133 -318
  3. vex_ast/__init__.py +81 -72
  4. vex_ast/ast/README.md +87 -87
  5. vex_ast/ast/__init__.py +74 -74
  6. vex_ast/ast/core.py +71 -71
  7. vex_ast/ast/expressions.py +276 -276
  8. vex_ast/ast/interfaces.py +208 -208
  9. vex_ast/ast/literals.py +80 -80
  10. vex_ast/ast/navigator.py +225 -225
  11. vex_ast/ast/operators.py +135 -135
  12. vex_ast/ast/statements.py +351 -351
  13. vex_ast/ast/validators.py +121 -120
  14. vex_ast/ast/vex_nodes.py +279 -279
  15. vex_ast/parser/README.md +47 -47
  16. vex_ast/parser/__init__.py +26 -26
  17. vex_ast/parser/factory.py +190 -190
  18. vex_ast/parser/interfaces.py +34 -34
  19. vex_ast/parser/python_parser.py +831 -786
  20. vex_ast/registry/README.md +107 -29
  21. vex_ast/registry/__init__.py +51 -51
  22. vex_ast/registry/api.py +190 -155
  23. vex_ast/registry/categories.py +179 -136
  24. vex_ast/registry/functions/__init__.py +10 -10
  25. vex_ast/registry/functions/constructors.py +71 -0
  26. vex_ast/registry/functions/display.py +146 -146
  27. vex_ast/registry/functions/drivetrain.py +163 -163
  28. vex_ast/registry/functions/initialize.py +31 -28
  29. vex_ast/registry/functions/motor.py +140 -140
  30. vex_ast/registry/functions/sensors.py +194 -194
  31. vex_ast/registry/functions/timing.py +103 -103
  32. vex_ast/registry/language_map.py +77 -77
  33. vex_ast/registry/registry.py +164 -153
  34. vex_ast/registry/signature.py +269 -191
  35. vex_ast/registry/simulation_behavior.py +8 -8
  36. vex_ast/registry/validation.py +43 -43
  37. vex_ast/serialization/__init__.py +37 -37
  38. vex_ast/serialization/json_deserializer.py +284 -275
  39. vex_ast/serialization/json_serializer.py +148 -148
  40. vex_ast/serialization/schema.py +492 -470
  41. vex_ast/types/README.md +78 -26
  42. vex_ast/types/__init__.py +140 -140
  43. vex_ast/types/base.py +83 -83
  44. vex_ast/types/enums.py +122 -97
  45. vex_ast/types/objects.py +64 -64
  46. vex_ast/types/primitives.py +68 -68
  47. vex_ast/types/type_checker.py +31 -31
  48. vex_ast/utils/README.md +39 -39
  49. vex_ast/utils/__init__.py +37 -37
  50. vex_ast/utils/errors.py +112 -112
  51. vex_ast/utils/source_location.py +38 -38
  52. vex_ast/utils/type_definitions.py +8 -8
  53. vex_ast/visitors/README.md +49 -49
  54. vex_ast/visitors/__init__.py +27 -27
  55. vex_ast/visitors/analyzer.py +102 -102
  56. vex_ast/visitors/base.py +133 -133
  57. vex_ast/visitors/printer.py +196 -146
  58. {vex_ast-0.2.4.dist-info → vex_ast-0.2.6.dist-info}/METADATA +206 -174
  59. vex_ast-0.2.6.dist-info/RECORD +64 -0
  60. vex_ast-0.2.4.dist-info/RECORD +0 -63
  61. {vex_ast-0.2.4.dist-info → vex_ast-0.2.6.dist-info}/WHEEL +0 -0
  62. {vex_ast-0.2.4.dist-info → vex_ast-0.2.6.dist-info}/licenses/LICENSE +0 -0
  63. {vex_ast-0.2.4.dist-info → vex_ast-0.2.6.dist-info}/top_level.txt +0 -0
@@ -1,174 +1,206 @@
1
- Metadata-Version: 2.4
2
- Name: vex_ast
3
- Version: 0.2.4
4
- Summary: A Python package for generating Abstract Syntax Trees for VEX V5 code.
5
- Home-page: https://github.com/heartx2/vex_ast
6
- Author: Chaze
7
- Author-email: Chaze <chazelexander@gmail.com>
8
- License: HX2's Vex AST © 2025 by charkwayteowy is licensed under CC BY-NC 4.0
9
- Project-URL: Repository, https://github.com/heartx2/vex_ast
10
- Classifier: Development Status :: 3 - Alpha
11
- Classifier: Intended Audience :: Developers
12
- Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.8
14
- Classifier: Programming Language :: Python :: 3.9
15
- Classifier: Programming Language :: Python :: 3.10
16
- Classifier: Programming Language :: Python :: 3.11
17
- Classifier: Topic :: Software Development :: Compilers
18
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
- Requires-Python: >=3.8
20
- Description-Content-Type: text/markdown
21
- License-File: LICENSE
22
- Dynamic: author
23
- Dynamic: home-page
24
- Dynamic: license-file
25
- Dynamic: requires-python
26
-
27
- # VEX AST Generator
28
-
29
- A Python package for generating Abstract Syntax Trees (ASTs) for VEX V5 Robot Python code.
30
-
31
- ## Project Goal
32
-
33
- The primary goal of this project is to provide a robust and extensible framework for parsing VEX V5 Python code and representing it as an Abstract Syntax Tree (AST). This AST can then be used for various purposes, such as static analysis, code transformation, simulation, or integration with other development tools specific to the VEX ecosystem.
34
-
35
- ## Features (Implemented)
36
-
37
- * Parsing of standard Python syntax relevant to VEX programming.
38
- * Generation of a well-defined AST structure using custom node types.
39
- * Representation of core Python constructs (variables, functions, loops, conditionals, expressions).
40
- * Specific AST nodes for common VEX API patterns (e.g., `MotorControl`, `SensorReading`).
41
- * Visitor pattern implementation (`vex_ast.visitors`) for easy AST traversal and manipulation.
42
- * Basic analysis visitors (`NodeCounter`, `VariableCollector`).
43
- * AST pretty-printing visitor (`PrintVisitor`).
44
- * Error handling and reporting with source location information (`vex_ast.utils`).
45
- * JSON serialization and deserialization of AST nodes (`vex_ast.serialization`).
46
- * JSON Schema generation for AST structure validation and documentation.
47
-
48
- ## Library Structure
49
-
50
- The core library is within the `vex_ast` directory:
51
-
52
- * `vex_ast/ast/`: Defines the structure and node types of the Abstract Syntax Tree.
53
- * `vex_ast/parser/`: Contains the logic for parsing Python source code into the AST.
54
- * `vex_ast/visitors/`: Provides tools for traversing and analyzing the generated AST.
55
- * `vex_ast/utils/`: Includes helper modules for error handling and source location tracking.
56
-
57
- ## Setup
58
-
59
- 1. **Clone the repository:**
60
- ```bash
61
- git clone https://github.com/heartx2/vex_ast # Replace with actual URL
62
- cd vex_ast
63
- ```
64
-
65
- 2. **Create and activate a virtual environment:**
66
- ```bash
67
- python3 -m venv .venv
68
- source .venv/bin/activate # On Windows use `.venv\Scripts\activate`
69
- ```
70
-
71
- 3. **Install dependencies:**
72
- ```bash
73
- pip install -r requirements.txt
74
- ```
75
-
76
- 4. **(Optional) Install for development:**
77
- If you plan to contribute to the project, install it in editable mode along with development dependencies:
78
- ```bash
79
- pip install -e .[dev]
80
- ```
81
-
82
- ## Usage Example
83
-
84
- ### Basic Parsing and Printing
85
-
86
- ```python
87
- from vex_ast import parse_string
88
- from vex_ast.visitors.printer import PrintVisitor
89
-
90
- # VEX-like Python code
91
- code = """
92
- left_motor = Motor("port1")
93
- right_motor = Motor("port10")
94
-
95
- def drive_forward(speed_percent):
96
- left_motor.spin(FORWARD, speed_percent, PERCENT)
97
- right_motor.spin(FORWARD, speed_percent, PERCENT)
98
- wait(1, SECONDS)
99
- left_motor.stop()
100
- right_motor.stop()
101
-
102
- drive_forward(50)
103
- print("Movement complete!")
104
- """
105
-
106
- try:
107
- # Parse the code string into an AST
108
- ast_tree = parse_string(code)
109
-
110
- # Use the PrintVisitor to get a textual representation of the AST
111
- printer = PrintVisitor()
112
- ast_representation = printer.visit(ast_tree)
113
-
114
- print("--- AST Representation ---")
115
- print(ast_representation)
116
-
117
- except Exception as e:
118
- print(f"An error occurred: {e}")
119
- ```
120
-
121
- ### Serialization and Deserialization
122
-
123
- ```python
124
- from vex_ast import (
125
- parse_string,
126
- serialize_ast_to_json,
127
- deserialize_ast_from_json,
128
- export_schema_to_file
129
- )
130
-
131
- # Parse code into an AST
132
- code = "x = 10 + 20"
133
- ast = parse_string(code)
134
-
135
- # Serialize the AST to JSON
136
- json_str = serialize_ast_to_json(ast, indent=2)
137
- print(json_str)
138
-
139
- # Save the AST to a file
140
- with open("ast.json", "w") as f:
141
- f.write(json_str)
142
-
143
- # Later, load the AST from JSON
144
- with open("ast.json", "r") as f:
145
- loaded_json = f.read()
146
-
147
- # Deserialize back to an AST object
148
- loaded_ast = deserialize_ast_from_json(loaded_json)
149
-
150
- # Generate and export a JSON schema
151
- export_schema_to_file("ast_schema.json")
152
- ```
153
-
154
- ## Development
155
- ```bash
156
- Running Tests
157
- pytest
158
- ```
159
- ```bash
160
- Type Checking
161
- mypy vex_ast
162
- ```
163
- ```bash
164
- Formatting and Linting
165
- black vex_ast tests
166
- flake8 vex_ast tests
167
- ```
168
- ## Contributing
169
-
170
- Contributions are welcome! Please follow the established coding standards and ensure tests pass before submitting a pull request.
171
-
172
- ## License
173
-
174
- HX2's Vex AST © 2025 by charkwayteowy is licensed under CC BY-NC 4.0
1
+ Metadata-Version: 2.4
2
+ Name: vex_ast
3
+ Version: 0.2.6
4
+ Summary: A Python package for generating Abstract Syntax Trees for VEX V5 code.
5
+ Home-page: https://github.com/heartx2/vex_ast
6
+ Author: Chaze
7
+ Author-email: Chaze <chazelexander@gmail.com>
8
+ License: HX2's Vex AST © 2025 by charkwayteowy is licensed under CC BY-NC 4.0
9
+ Project-URL: Repository, https://github.com/heartx2/vex_ast
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Topic :: Software Development :: Compilers
18
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
+ Requires-Python: >=3.8
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ Dynamic: author
23
+ Dynamic: home-page
24
+ Dynamic: license-file
25
+ Dynamic: requires-python
26
+
27
+ # VEX AST Generator
28
+
29
+ A Python package for generating Abstract Syntax Trees (ASTs) for VEX V5 Robot Python code.
30
+
31
+ ## Project Goal
32
+
33
+ The primary goal of this project is to provide a robust and extensible framework for parsing VEX V5 Python code and representing it as an Abstract Syntax Tree (AST). This AST can then be used for various purposes, such as static analysis, code transformation, simulation, or integration with other development tools specific to the VEX ecosystem.
34
+
35
+ ## Recent Updates (v0.2.6)
36
+
37
+ ### Major Registry Overhaul
38
+ - Introduced a modern category system with `VexCategory` and `BehaviorType` enums
39
+ - Improved function organization and querying capabilities
40
+ - Added missing Brain and Controller constructors
41
+ - Maintained full backward compatibility
42
+
43
+ ### Enhanced API
44
+ - New methods for behavior-based function queries
45
+ - Combined category and behavior search functionality
46
+ - Improved validation mechanisms
47
+
48
+ ## Features (Implemented)
49
+
50
+ * Parsing of standard Python syntax relevant to VEX programming.
51
+ * Generation of a well-defined AST structure using custom node types.
52
+ * Representation of core Python constructs (variables, functions, loops, conditionals, expressions).
53
+ * Specific AST nodes for common VEX API patterns (e.g., `MotorControl`, `SensorReading`).
54
+ * Visitor pattern implementation (`vex_ast.visitors`) for easy AST traversal and manipulation.
55
+ * Basic analysis visitors (`NodeCounter`, `VariableCollector`).
56
+ * AST pretty-printing visitor (`PrintVisitor`).
57
+ * Error handling and reporting with source location information (`vex_ast.utils`).
58
+ * JSON serialization and deserialization of AST nodes (`vex_ast.serialization`).
59
+ * JSON Schema generation for AST structure validation and documentation.
60
+ * Modern registry system with dual-axis categorization.
61
+
62
+ ## Library Structure
63
+
64
+ The core library is within the `vex_ast` directory:
65
+
66
+ * `vex_ast/ast/`: Defines the structure and node types of the Abstract Syntax Tree.
67
+ * `vex_ast/parser/`: Contains the logic for parsing Python source code into the AST.
68
+ * `vex_ast/visitors/`: Provides tools for traversing and analyzing the generated AST.
69
+ * `vex_ast/utils/`: Includes helper modules for error handling and source location tracking.
70
+ * `vex_ast/registry/`: Modern function registry with category/behavior classification.
71
+ * `vex_ast/types/`: Type system for VEX components and values.
72
+
73
+ ## Setup
74
+
75
+ 1. **Clone the repository:**
76
+ ```bash
77
+ git clone https://github.com/heartx2/vex_ast # Replace with actual URL
78
+ cd vex_ast
79
+ ```
80
+
81
+ 2. **Create and activate a virtual environment:**
82
+ ```bash
83
+ python3 -m venv .venv
84
+ source .venv/bin/activate # On Windows use `.venv\Scripts\activate`
85
+ ```
86
+
87
+ 3. **Install dependencies:**
88
+ ```bash
89
+ pip install -r requirements.txt
90
+ ```
91
+
92
+ 4. **(Optional) Install for development:**
93
+ If you plan to contribute to the project, install it in editable mode along with development dependencies:
94
+ ```bash
95
+ pip install -e .[dev]
96
+ ```
97
+
98
+ ## Usage Example
99
+
100
+ ### Basic Parsing and Printing
101
+
102
+ ```python
103
+ from vex_ast import parse_string
104
+ from vex_ast.visitors.printer import PrintVisitor
105
+
106
+ # VEX-like Python code
107
+ code = """
108
+ left_motor = Motor("port1")
109
+ right_motor = Motor("port10")
110
+
111
+ def drive_forward(speed_percent):
112
+ left_motor.spin(FORWARD, speed_percent, PERCENT)
113
+ right_motor.spin(FORWARD, speed_percent, PERCENT)
114
+ wait(1, SECONDS)
115
+ left_motor.stop()
116
+ right_motor.stop()
117
+
118
+ drive_forward(50)
119
+ print("Movement complete!")
120
+ """
121
+
122
+ try:
123
+ # Parse the code string into an AST
124
+ ast_tree = parse_string(code)
125
+
126
+ # Use the PrintVisitor to get a textual representation of the AST
127
+ printer = PrintVisitor()
128
+ ast_representation = printer.visit(ast_tree)
129
+
130
+ print("--- AST Representation ---")
131
+ print(ast_representation)
132
+
133
+ except Exception as e:
134
+ print(f"An error occurred: {e}")
135
+ ```
136
+
137
+ ### Registry Access
138
+
139
+ ```python
140
+ from vex_ast.registry.api import registry_api
141
+ from vex_ast.registry.categories import VexCategory, BehaviorType
142
+
143
+ # Find motor control functions
144
+ motor_control = registry_api.get_functions_by_category_and_behavior(
145
+ VexCategory.MOTOR,
146
+ BehaviorType.CONTROL
147
+ )
148
+
149
+ # Validate function calls
150
+ valid, error = registry_api.validate_call("motor.spin", [FORWARD, 50, "RPM"], {})
151
+ ```
152
+
153
+ ### Serialization and Deserialization
154
+
155
+ ```python
156
+ from vex_ast import (
157
+ parse_string,
158
+ serialize_ast_to_json,
159
+ deserialize_ast_from_json,
160
+ export_schema_to_file
161
+ )
162
+
163
+ # Parse code into an AST
164
+ code = "x = 10 + 20"
165
+ ast = parse_string(code)
166
+
167
+ # Serialize the AST to JSON
168
+ json_str = serialize_ast_to_json(ast, indent=2)
169
+ print(json_str)
170
+
171
+ # Save the AST to a file
172
+ with open("ast.json", "w") as f:
173
+ f.write(json_str)
174
+
175
+ # Later, load the AST from JSON
176
+ with open("ast.json", "r") as f:
177
+ loaded_json = f.read()
178
+
179
+ # Deserialize back to an AST object
180
+ loaded_ast = deserialize_ast_from_json(loaded_json)
181
+
182
+ # Generate and export a JSON schema
183
+ export_schema_to_file("ast_schema.json")
184
+ ```
185
+
186
+ ## Development
187
+
188
+ ```bash
189
+ # Running Tests
190
+ pytest
191
+
192
+ # Type Checking
193
+ mypy vex_ast
194
+
195
+ # Formatting and Linting
196
+ black vex_ast tests
197
+ flake8 vex_ast tests
198
+ ```
199
+
200
+ ## Contributing
201
+
202
+ Contributions are welcome! Please follow the established coding standards and ensure tests pass before submitting a pull request.
203
+
204
+ ## License
205
+
206
+ HX2's Vex AST © 2025 by charkwayteowy is licensed under CC BY-NC 4.0
@@ -0,0 +1,64 @@
1
+ vex_ast/README.md,sha256=Ug8m53-HuUl7t5CBJvqmaaKWGZcFD7G1pioFDm2rBWQ,2639
2
+ vex_ast/READMEAPI.md,sha256=xkq263kzQw2lqc1HYFtxUwTowCA5HmT5QtH5YT3YUjY,3746
3
+ vex_ast/__init__.py,sha256=O7paH62gBkKo3OrUVEoAHHAzynMffaruwQC6bLJ3rnw,2271
4
+ vex_ast/ast/README.md,sha256=jCmoS2vcQ6_WFeKZV3DaBybaNkjELPcNd-ao2-DLpTg,3292
5
+ vex_ast/ast/__init__.py,sha256=yzm4PdjF6nZ0z5nI0vYkcKA3ITCUpdcYo1h4bwyj9Sg,2508
6
+ vex_ast/ast/core.py,sha256=Q7Rqww_88XnaNcMdKSqfOD7i8v5bzoBzpv-wcbvTbS4,2741
7
+ vex_ast/ast/expressions.py,sha256=XY5oI_nW0STSUt36V5x8-I7QIgHH9iqINBIs8RAqF8I,9680
8
+ vex_ast/ast/interfaces.py,sha256=mRGu4yOFdRUul21Ixvs8cvhdQwQEeMYzFuALYo8LHQE,6656
9
+ vex_ast/ast/literals.py,sha256=lE56-57hLXShXSKaX16hA6tY_zahKZz9d_uoiFAMWV4,2698
10
+ vex_ast/ast/navigator.py,sha256=6-KYVizv2czxENAkbp14VzHHlQ47puZq1Z9hr7n0S5A,7754
11
+ vex_ast/ast/operators.py,sha256=2X0XftjPcW3V8_0yR-0_-Diej-uo-DYAOSFKyZ0rdB4,3295
12
+ vex_ast/ast/statements.py,sha256=IygLbbPFrApacbCBTBg0OFU4DRMtoL2mvkKQ4aLKHNw,12192
13
+ vex_ast/ast/validators.py,sha256=gTude4HH5sBr4hl8sAp_eV6PI331uYIwpPlQTS7ChTU,4795
14
+ vex_ast/ast/vex_nodes.py,sha256=1_t2t7fOgT_aghkbhise7UCfXzyj6Xf5rodo62OCbgc,12260
15
+ vex_ast/parser/README.md,sha256=CIuj-w5L6-sM6ZsYK5_g_bw6fzrBmrcieFLwq9umnOk,2612
16
+ vex_ast/parser/__init__.py,sha256=7lVQfDC57QVGoyu0hDwq9AfNtUHE3q7F1gLo1Kr6qeI,530
17
+ vex_ast/parser/factory.py,sha256=bMxBW0iT_MuXDq2bDxmzBSMPKCnyQpZ43EN5km_1tMI,9688
18
+ vex_ast/parser/interfaces.py,sha256=JoPGY8Z_vfUvwfpqUvAw0smphrbDOrbi4CdnP72qm84,990
19
+ vex_ast/parser/python_parser.py,sha256=jDTaTHxZnNnlK4CXU_tjuYdMzMLp7sOchbmq9T44YZ4,35532
20
+ vex_ast/parser/strategies.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ vex_ast/registry/README.md,sha256=oQ1QpU6uElyZcElgoHrtGv_rHkgH4uSh9I81JPSqoss,3567
22
+ vex_ast/registry/__init__.py,sha256=aw7j3-LBcXPeLqO0B5f6K8JLPOjCd8yZBOABAYlFvk0,1239
23
+ vex_ast/registry/api.py,sha256=uytN5pguCZfuxVBi-tU-G5UC13SkkbBX_1kbtYc_58g,6956
24
+ vex_ast/registry/categories.py,sha256=mVkBGxVq_ekhKqO56SQCLKkQMpK2AQHZ1w-AUbOiNoU,7017
25
+ vex_ast/registry/language_map.py,sha256=Svy17frmKTonOdi6XShLJmUc_QoJeZPm1n2R99Xq7uE,2733
26
+ vex_ast/registry/registry.py,sha256=HQVUxGO5vnvzf55spypDGg0g-FqY-q-g4oHrV4o4bnM,7451
27
+ vex_ast/registry/signature.py,sha256=k4YbzSmGVrjTNEhqWHgysoN3ADJLUHN0GJz6D_6-Rwc,12211
28
+ vex_ast/registry/simulation_behavior.py,sha256=bMzV1MSmpj-TynW_u9lJzZ_M-qYXYFZ0YcnkAtgN2Y0,321
29
+ vex_ast/registry/validation.py,sha256=cjBWqyuO1MmWXhP-DwQ7OQ9oPaULfydoe6awr95eL7g,2016
30
+ vex_ast/registry/functions/__init__.py,sha256=czanAPKAqAh6Y62Ts7jP3DJnyu85E3T6JorUhWWeF0M,217
31
+ vex_ast/registry/functions/constructors.py,sha256=H1puqF5o2gYJvVbejVybT4wqsOt3PkDXxM3deJMS4Yo,2541
32
+ vex_ast/registry/functions/display.py,sha256=yrExl_RwfIQajeusyvx-xmhR28_151QhTF649iORsAE,5000
33
+ vex_ast/registry/functions/drivetrain.py,sha256=UHnvLAaaVDQdpPGCnsI3f15-QJ_AjI6Gp8GzlVS39As,6470
34
+ vex_ast/registry/functions/initialize.py,sha256=NixNJfnNlIN7dF2w3hiaNjzuVuNQLwzVt6wv-6V7N50,916
35
+ vex_ast/registry/functions/motor.py,sha256=LUU75Jm_DA2dZEdDcYPbAU3LtJvPtf2LFvQ8qrBwx30,5358
36
+ vex_ast/registry/functions/sensors.py,sha256=ZZOO-OhlGe_RTPBZ1m1fkqAJbhdWIWuM8j4Ap5RzMbg,6604
37
+ vex_ast/registry/functions/timing.py,sha256=Bze1VGvgbmXbT4ZZSvOmAvUxkcN6lrvWytg-Z_Wm8_g,3307
38
+ vex_ast/serialization/__init__.py,sha256=7pYoXxrgXbgYqcJ9FbXe9KYXUWMtS08dZ07xhe1e7Mo,872
39
+ vex_ast/serialization/json_deserializer.py,sha256=1nOHHthYgy9r7A80Y3Dnrq5i69RfCEBHooebufjh7sw,12017
40
+ vex_ast/serialization/json_serializer.py,sha256=rfnIhTf17h7gLhQK66ED4FeMlyTn5NnLOKEqiAeFRcY,4613
41
+ vex_ast/serialization/schema.py,sha256=rOyiUJGyoXNS4MkkiLXoW2pglZL3tgVRRhYr8lkqvYg,15835
42
+ vex_ast/types/README.md,sha256=Z0OWK0Fk4gCl_Du50g7_r5Dg1m3kQimMjy4Bk-c_DS4,2423
43
+ vex_ast/types/__init__.py,sha256=NmoVlxv3E9sSCJgRKfIoRcDNI3Ey8nM3tgu_NvLmUlo,2303
44
+ vex_ast/types/base.py,sha256=_l2pR8Di19gvOQwnA1LYC4x5bURh029uLSfXc914ZTo,2341
45
+ vex_ast/types/enums.py,sha256=cIYr-3DVgDBckk80-nvBHYKEjb5-JItHKOK2c_tBQ-E,3045
46
+ vex_ast/types/objects.py,sha256=bu41TFjELnaA3OtSqrVOogyDFwU9gxN0_bO_-_8AvOA,2344
47
+ vex_ast/types/primitives.py,sha256=UTtics3KPNQJGfKCr5tULjBPTLcidTpF-Cu54SMl7CQ,1996
48
+ vex_ast/types/type_checker.py,sha256=ICPBU3njXW5mvqCq_5yTXswwBmgvNpv5L_ZnMB3bp9Y,1114
49
+ vex_ast/utils/README.md,sha256=unCWENWK--IVMhgxdpnczfOdLSXf2C1Sp5SxFKTyCjg,1984
50
+ vex_ast/utils/__init__.py,sha256=h_HT1fuD8fx8yQ-ipEUCm1LOtGzcWCSDNOtHFKGJzTo,658
51
+ vex_ast/utils/errors.py,sha256=1OjNJUVjPVO55nLyOx0GtYxRa-VOtjsOnzgShzHVkhs,3962
52
+ vex_ast/utils/source_location.py,sha256=JQ7zt7k_kaWmHAu9Higs35thBuWbsQbQxujLhCuSVP8,1335
53
+ vex_ast/utils/type_definitions.py,sha256=XLuOAOQyDW4G8is1hA28Rksy7u7lV1Uh4YkaQXKlJQY,321
54
+ vex_ast/visitors/README.md,sha256=UZlg_AsFGB58xmgRXj6hbiPv0-Pa6QkuhgZVOyiDcOU,2774
55
+ vex_ast/visitors/__init__.py,sha256=O6Yr4uwc-RSpvaileOsLiMwHp61eJaWnxQrc3Xa5jsY,519
56
+ vex_ast/visitors/analyzer.py,sha256=8uuJA00h4g6cski7vmcCQfDVfpJF-2DkU_y5dF5mUC8,3770
57
+ vex_ast/visitors/base.py,sha256=Wgf0wholPhZkV4oN5IWN34A1tKItENZCN96vbBEhD1k,5111
58
+ vex_ast/visitors/printer.py,sha256=2H9gwGXXRsa6xZyiQE5cNfsGGjn71bBQ-T-gdXiPCOs,7281
59
+ vex_ast/visitors/transformer.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
+ vex_ast-0.2.6.dist-info/licenses/LICENSE,sha256=IOSlfCuxGv4OAg421BRDKVi16RZ7-5kCMJ4B16r4kuc,69
61
+ vex_ast-0.2.6.dist-info/METADATA,sha256=Jgqi8xwYLiAq7W_Ud1C464l_ShVlKZxEHWSlKUTyB0E,6551
62
+ vex_ast-0.2.6.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
63
+ vex_ast-0.2.6.dist-info/top_level.txt,sha256=MoZGrpKgNUDiqL9gWp4q3wMw3q93XPEEjmBNPJQcNAs,8
64
+ vex_ast-0.2.6.dist-info/RECORD,,
@@ -1,63 +0,0 @@
1
- vex_ast/README.md,sha256=tRaq6n2Ab4IahHSo3utW2imVuTrJu_7zaelgF-lGBYo,2007
2
- vex_ast/READMEAPI.md,sha256=hGn4IMT9NnI_LW0kd36BdKKXdIhYFLbQcgbVj1EWJps,9107
3
- vex_ast/__init__.py,sha256=0xxA3UL3UMPB1Vlf1jL99bNUnvm41yJEoG5sMeylptY,1757
4
- vex_ast/ast/README.md,sha256=7IQDHEXmKyJ8zfJNwa3pMGTDZKVPMFD0YeHT06ATRyM,3205
5
- vex_ast/ast/__init__.py,sha256=_KT8R_WG9_DLvPlDhVCNWz-yw0OtdoKxxWZYbtloCzU,2434
6
- vex_ast/ast/core.py,sha256=q-15q5VfGIVPAmFsSiWeFAZ55MPsXfCRa21rrt2hmlM,2670
7
- vex_ast/ast/expressions.py,sha256=FGGWyNpJynnXqw0W_M08pGwa8wplF0oucbqk4x2W7SI,9404
8
- vex_ast/ast/interfaces.py,sha256=KR_3jM5J97vQb6O5cgDzBi7IIQHjr2uXTobaVCT6RSg,6448
9
- vex_ast/ast/literals.py,sha256=PXbOH5Y2fxEngWk_FOiFsx3PC2SEqcx0bcfOGJ3SdbI,2618
10
- vex_ast/ast/navigator.py,sha256=9DaVXrknBbBr4omAAMHQnZL9Wpj5wjtoCS6_lni8MYM,7529
11
- vex_ast/ast/operators.py,sha256=I-yWvhsrz-OxmBZs5zIss_GTZF5S-nwcSmIzvAVtddM,3160
12
- vex_ast/ast/statements.py,sha256=OWRthjYGmTuNozYAHjh_Enp5t-hR1PphtPnFg31FeWw,11841
13
- vex_ast/ast/validators.py,sha256=ySpi5H0XRdGXXMFAfmuVEyc3Q9mMXhubZAkP4N8NL3c,4717
14
- vex_ast/ast/vex_nodes.py,sha256=8Wq9vl8Mp70E3fxEut9tB6WZE1z0Q_i5V0qh_5Zoeag,11981
15
- vex_ast/parser/README.md,sha256=P1qq_97skpgluLDpNu9V_pAdkuF9StjkzOEXJJYpEuM,2565
16
- vex_ast/parser/__init__.py,sha256=LGHnFm3UzR4Nw7royGH3c_2RqeY66y8O6DdXHbm9yL4,504
17
- vex_ast/parser/factory.py,sha256=tcEYSgMNrjqhFDx3tYX22a68Qsxv3fcQpefki_tB8lE,9498
18
- vex_ast/parser/interfaces.py,sha256=Ttc0bD_5X420ZCT9MLUf_wE1aZLWLkaJRQqCwBy9wIs,956
19
- vex_ast/parser/python_parser.py,sha256=c36vfmzZvGGNDdi6g4kwQnESaKxVF8cSpaRoGVp_lBo,32428
20
- vex_ast/parser/strategies.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- vex_ast/registry/README.md,sha256=J8xEXEscEZhWa6wmn05kjE395AjrV7p2h7nq4SXI5uE,1535
22
- vex_ast/registry/__init__.py,sha256=dXT8OS7uLyBSdQKZDWrtbANzgSWcg9HUQDA1EaLOvjQ,1188
23
- vex_ast/registry/api.py,sha256=yyW-TsCIULTzePAoyMvEqD_RNlkFSb4PLpiSkw6ueQk,5460
24
- vex_ast/registry/categories.py,sha256=y5tnCzHQ9PPg9hOzOMgyE1ZAhcsjgeFSrgqdJrdqHEg,4885
25
- vex_ast/registry/language_map.py,sha256=eekN3k-K9g90GFi4--If3nfJCyarUJxDWDCDvLm7mdU,2656
26
- vex_ast/registry/registry.py,sha256=gvsQKyeXWp84T2uDB4O_WQgKCeq8W9udl8TD5MnPZzc,6661
27
- vex_ast/registry/signature.py,sha256=xMMay6zycjf4a0XMVJuyjqZxTuK6X2bLeyW4HAS0suQ,8019
28
- vex_ast/registry/simulation_behavior.py,sha256=WwkVKae0owtv3WTrfnVH93rpsh9lbqJ_RSAVmpIVA_k,313
29
- vex_ast/registry/validation.py,sha256=xq5UjSWYAcRxjxsCGg3WU5RtPN-DB-JAqKqDNGvnJGk,1973
30
- vex_ast/registry/functions/__init__.py,sha256=X9aw0-Y9Q6Gcx01zepP8G_20ybfwC-LDPQfkK2RDOrE,207
31
- vex_ast/registry/functions/display.py,sha256=icXgTL6Y94ddm-Xjuv1dIOY5k0K2FVnAvmKBvUCHvk0,4854
32
- vex_ast/registry/functions/drivetrain.py,sha256=F3voRYRfmAKgMiOP77oFTV8VCg-hXCVDUq3D-xGhN7Y,6307
33
- vex_ast/registry/functions/initialize.py,sha256=r-FoxCMNDtPDayQR1kq0uDDIvObQ0TUK-tyzD2eqvMo,787
34
- vex_ast/registry/functions/motor.py,sha256=Vby44hV1goNFgFQEFDlv7z_9uGQeuvLMABplOnLqZbo,5218
35
- vex_ast/registry/functions/sensors.py,sha256=BdhLV5gSWD5HO-o3JRXhbGQF7s1Ybk3b6VLLqVau1i0,6410
36
- vex_ast/registry/functions/timing.py,sha256=DqwMVPk7VKDeZB4S3NI7wOYgM1R52dcdgaVIb9135Jg,3204
37
- vex_ast/serialization/__init__.py,sha256=qPTEiMjU8hpVxNH5z4MY7Yj60AxuFurjXZStjhWWf6o,835
38
- vex_ast/serialization/json_deserializer.py,sha256=GCfm8XAF_90FswlizFy59fyZwjZtE94yPR_FWWWAE20,11108
39
- vex_ast/serialization/json_serializer.py,sha256=YvMRUpqXjtbxlIvathEIywUqbH3Ne6GSRODfFB0QCGM,4465
40
- vex_ast/serialization/schema.py,sha256=BNBYruht3fmuGoVGv5fuMwdIEqLu7OZ1XZS8gzdom0w,14440
41
- vex_ast/types/README.md,sha256=Wd3jBShiNXNc3iJ69Qps5_0mBq8QVEd_Gz5OachfS34,1029
42
- vex_ast/types/__init__.py,sha256=naLOT_-qHWxzYj4nwxjCB5dfL6tcIt7TjMEaRaXMWbU,2163
43
- vex_ast/types/base.py,sha256=hCPCeBNnD5p29Mim-ouRTkG6Lfa8NXrsdYLO8xsbFtM,2258
44
- vex_ast/types/enums.py,sha256=BNPQrSh0SXXluVzv9wimOEC8B_5qhB6YNEqNWLp7ZYU,2507
45
- vex_ast/types/objects.py,sha256=3bmfq-tB4uIghFed2XnisRJjUR2woJX46QIUEN_rHdM,2280
46
- vex_ast/types/primitives.py,sha256=t_4kEVyPSmKRHEIRQcp-X5Yq46JbG1SxzlvHb0vL4IA,1928
47
- vex_ast/types/type_checker.py,sha256=emzhmc6AlH71w0DrKLlZRMBlJNZAuENihvRXTenqg_Q,1083
48
- vex_ast/utils/README.md,sha256=Y9RJMQTqQbpjVkvYJmpeRihD1zfW9PhNL_LgoDJ84ak,1945
49
- vex_ast/utils/__init__.py,sha256=azzhhFoMykqOkVVm6X2V7dFW3jGBkOvEgnEP1JTCS3g,621
50
- vex_ast/utils/errors.py,sha256=T1sOqWR3-0dYqmXAKDwO7VXIHCGZMnF_gEIGmFWy8Ps,3850
51
- vex_ast/utils/source_location.py,sha256=r857ypqUBqex2y_R0RzZo7pz5di9qtEeWFFQ4HwzYQE,1297
52
- vex_ast/utils/type_definitions.py,sha256=2rB85B1vZL1GLWItBuJJpyr-vmp3W346EMMX2TPZ99Q,313
53
- vex_ast/visitors/README.md,sha256=BKDj8LMuBlCrzgSSLmCkbET7WIqgxe-oCkqQbqXekrE,2725
54
- vex_ast/visitors/__init__.py,sha256=cndW3yp0Mu9w5vzwqqS2N5EqS0Ioh0V5UCDDrwCO0_Q,492
55
- vex_ast/visitors/analyzer.py,sha256=cBT5PRbtfQ_Dt1qiHN-wdO5KnC2yl-Ul5RasXg9geHY,3668
56
- vex_ast/visitors/base.py,sha256=fLeMuIXJEHsag17PDM33he79x7Mp4V0wgtnF_8LuFpc,4978
57
- vex_ast/visitors/printer.py,sha256=kofemEXvGBXEm1wy57R-Pgj2QBnSp_lNjFk3p2hNU2o,5460
58
- vex_ast/visitors/transformer.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
- vex_ast-0.2.4.dist-info/licenses/LICENSE,sha256=IOSlfCuxGv4OAg421BRDKVi16RZ7-5kCMJ4B16r4kuc,69
60
- vex_ast-0.2.4.dist-info/METADATA,sha256=_cjCd-H6a70oJPJ8X-P_m7NiAwikUQiAX2aLRUDDfFo,5295
61
- vex_ast-0.2.4.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
62
- vex_ast-0.2.4.dist-info/top_level.txt,sha256=MoZGrpKgNUDiqL9gWp4q3wMw3q93XPEEjmBNPJQcNAs,8
63
- vex_ast-0.2.4.dist-info/RECORD,,