minecraft-datapack-language 15.4.25__py3-none-any.whl → 15.4.26__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.
- minecraft_datapack_language/_version.py +2 -2
- minecraft_datapack_language/mdl_parser_js.py +49 -33
- {minecraft_datapack_language-15.4.25.dist-info → minecraft_datapack_language-15.4.26.dist-info}/METADATA +1 -1
- {minecraft_datapack_language-15.4.25.dist-info → minecraft_datapack_language-15.4.26.dist-info}/RECORD +8 -8
- {minecraft_datapack_language-15.4.25.dist-info → minecraft_datapack_language-15.4.26.dist-info}/WHEEL +0 -0
- {minecraft_datapack_language-15.4.25.dist-info → minecraft_datapack_language-15.4.26.dist-info}/entry_points.txt +0 -0
- {minecraft_datapack_language-15.4.25.dist-info → minecraft_datapack_language-15.4.26.dist-info}/licenses/LICENSE +0 -0
- {minecraft_datapack_language-15.4.25.dist-info → minecraft_datapack_language-15.4.26.dist-info}/top_level.txt +0 -0
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
28
28
|
commit_id: COMMIT_ID
|
29
29
|
__commit_id__: COMMIT_ID
|
30
30
|
|
31
|
-
__version__ = version = '15.4.
|
32
|
-
__version_tuple__ = version_tuple = (15, 4,
|
31
|
+
__version__ = version = '15.4.26'
|
32
|
+
__version_tuple__ = version_tuple = (15, 4, 26)
|
33
33
|
|
34
34
|
__commit_id__ = commit_id = None
|
@@ -337,31 +337,29 @@ class MDLParser:
|
|
337
337
|
|
338
338
|
# Check for scope selector after variable name
|
339
339
|
scope = None
|
340
|
-
if not self._is_at_end() and self._peek().type == TokenType.
|
341
|
-
self._match(TokenType.
|
340
|
+
if not self._is_at_end() and self._peek().type == TokenType.LANGLE:
|
341
|
+
self._match(TokenType.LANGLE) # consume '<'
|
342
342
|
|
343
|
-
# Parse scope selector
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
self._match(TokenType.RANGLE) # consume '>'
|
364
|
-
scope = ''.join(scope_parts)
|
343
|
+
# Parse scope selector content
|
344
|
+
scope_parts = []
|
345
|
+
while not self._is_at_end() and self._peek().type != TokenType.RANGLE:
|
346
|
+
scope_parts.append(self._peek().value)
|
347
|
+
self._advance()
|
348
|
+
|
349
|
+
if self._is_at_end():
|
350
|
+
raise create_parser_error(
|
351
|
+
message="Unterminated scope selector",
|
352
|
+
file_path=self.source_file,
|
353
|
+
line=self._peek().line,
|
354
|
+
column=self._peek().column,
|
355
|
+
line_content=self._peek().value,
|
356
|
+
suggestion="Add a closing '>' to terminate the scope selector"
|
357
|
+
)
|
358
|
+
|
359
|
+
self._match(TokenType.RANGLE) # consume '>'
|
360
|
+
scope = ''.join(scope_parts)
|
361
|
+
# Update the name to include the scope selector
|
362
|
+
name = f"{name}<{scope}>"
|
365
363
|
|
366
364
|
self._match(TokenType.ASSIGN)
|
367
365
|
|
@@ -901,15 +899,33 @@ class MDLParser:
|
|
901
899
|
identifier_name = token.value
|
902
900
|
self._advance() # consume the identifier
|
903
901
|
|
904
|
-
# Check if
|
905
|
-
if
|
906
|
-
#
|
907
|
-
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
902
|
+
# Check if this identifier is followed by a scope selector
|
903
|
+
if not self._is_at_end() and self._peek().type == TokenType.LANGLE:
|
904
|
+
# This is a scoped variable - parse the scope selector
|
905
|
+
self._match(TokenType.LANGLE) # consume '<'
|
906
|
+
|
907
|
+
# Parse scope selector content
|
908
|
+
scope_parts = []
|
909
|
+
while not self._is_at_end() and self._peek().type != TokenType.RANGLE:
|
910
|
+
scope_parts.append(self._peek().value)
|
911
|
+
self._advance()
|
912
|
+
|
913
|
+
if self._is_at_end():
|
914
|
+
raise create_parser_error(
|
915
|
+
message="Unterminated scope selector in expression",
|
916
|
+
file_path=self.source_file,
|
917
|
+
line=self._peek().line,
|
918
|
+
column=self._peek().column,
|
919
|
+
line_content=self._peek().value,
|
920
|
+
suggestion="Add a closing '>' to terminate the scope selector"
|
921
|
+
)
|
922
|
+
|
923
|
+
self._match(TokenType.RANGLE) # consume '>'
|
924
|
+
scope_selector = ''.join(scope_parts)
|
925
|
+
|
926
|
+
# Create a scoped variable expression
|
927
|
+
full_name = f"{identifier_name}<{scope_selector}>"
|
928
|
+
return VariableExpression(full_name)
|
913
929
|
|
914
930
|
# Regular variable expression without scope
|
915
931
|
return VariableExpression(identifier_name)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: minecraft-datapack-language
|
3
|
-
Version: 15.4.
|
3
|
+
Version: 15.4.26
|
4
4
|
Summary: Compile JavaScript-style MDL language or Python API into a Minecraft datapack (1.21+ ready). Features variables, control flow, error handling, and VS Code extension.
|
5
5
|
Project-URL: Homepage, https://www.mcmdl.com
|
6
6
|
Project-URL: Documentation, https://www.mcmdl.com/docs
|
@@ -1,5 +1,5 @@
|
|
1
1
|
minecraft_datapack_language/__init__.py,sha256=i-qCchbe5b2Fshgc6yCU9mddOLs2UBt9SAcLqfUIrT0,606
|
2
|
-
minecraft_datapack_language/_version.py,sha256=
|
2
|
+
minecraft_datapack_language/_version.py,sha256=ZFtqs_SG6x6U-SOyZin31273WN7DoOUGVgDsZjWRysA,708
|
3
3
|
minecraft_datapack_language/ast_nodes.py,sha256=U-CB3R7p7OjaljI47BWsRrQtliw0yAWUrJVoxzOLmQw,2143
|
4
4
|
minecraft_datapack_language/cli.py,sha256=p5A_tEEXugN2NhQFbbgfwi4FxbWYD91RWeKR_A3Vuec,6263
|
5
5
|
minecraft_datapack_language/cli_build.py,sha256=u0XIOH_zTARPC6dvWf-411OqrF7RjT7Z9Hkp6hTeZsI,47990
|
@@ -14,12 +14,12 @@ minecraft_datapack_language/linter.py,sha256=7UqbygC5JPCGg-BSOq65NB2xEJBu_OUOYII
|
|
14
14
|
minecraft_datapack_language/mdl_errors.py,sha256=mz6uyPkeBpbMHj4PiAyVecEVJ9_hdSfR45QAjG6oYf0,15690
|
15
15
|
minecraft_datapack_language/mdl_lexer_js.py,sha256=VvbhKm727khdSAABxa03hoIIA7H3hWi3RLp9BSXbhY0,28277
|
16
16
|
minecraft_datapack_language/mdl_linter.py,sha256=z85xoAglENurCh30bR7kEHZ_JeMxcYaLDcGNRAl-RAI,17253
|
17
|
-
minecraft_datapack_language/mdl_parser_js.py,sha256=
|
17
|
+
minecraft_datapack_language/mdl_parser_js.py,sha256=kaeTxzQDRDUj4YdpeR9Yrp8d8JCuOwmd36HZSeSrCgY,43992
|
18
18
|
minecraft_datapack_language/pack.py,sha256=nYiXQ3jgJlDfc4m-65f7C2LFhDRioaUU_XVy6Na4SJI,34625
|
19
19
|
minecraft_datapack_language/utils.py,sha256=Aq0HAGlXqj9BUTEjaEilpvzEW0EtZYYMMwOqG9db6dE,684
|
20
|
-
minecraft_datapack_language-15.4.
|
21
|
-
minecraft_datapack_language-15.4.
|
22
|
-
minecraft_datapack_language-15.4.
|
23
|
-
minecraft_datapack_language-15.4.
|
24
|
-
minecraft_datapack_language-15.4.
|
25
|
-
minecraft_datapack_language-15.4.
|
20
|
+
minecraft_datapack_language-15.4.26.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
21
|
+
minecraft_datapack_language-15.4.26.dist-info/METADATA,sha256=CP-fUjVPMIttFRw5N2w_ElF9baJ9wBCYjSbOjmSD-4A,37917
|
22
|
+
minecraft_datapack_language-15.4.26.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
23
|
+
minecraft_datapack_language-15.4.26.dist-info/entry_points.txt,sha256=c6vjBeCiyQflvPHBRyBk2nJCSfYt3Oc7Sc9V87ySi_U,108
|
24
|
+
minecraft_datapack_language-15.4.26.dist-info/top_level.txt,sha256=ADtFI476tbKLLxEAA-aJQAfg53MA3k_DOb0KTFiggfw,28
|
25
|
+
minecraft_datapack_language-15.4.26.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|