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.
@@ -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.25'
32
- __version_tuple__ = version_tuple = (15, 4, 25)
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.SCOPE:
341
- self._match(TokenType.SCOPE) # consume 'scope'
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 in angle brackets
344
- if not self._is_at_end() and self._peek().type == TokenType.LANGLE:
345
- self._match(TokenType.LANGLE) # consume '<'
346
-
347
- # Parse scope selector content
348
- scope_parts = []
349
- while not self._is_at_end() and self._peek().type != TokenType.RANGLE:
350
- scope_parts.append(self._peek().value)
351
- self._advance()
352
-
353
- if self._is_at_end():
354
- raise create_parser_error(
355
- message="Unterminated scope selector",
356
- file_path=self.source_file,
357
- line=self._peek().line,
358
- column=self._peek().column,
359
- line_content=self._peek().value,
360
- suggestion="Add a closing '>' to terminate the scope selector"
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 the identifier contains a scope selector
905
- if '<' in identifier_name and identifier_name.endswith('>'):
906
- # Extract variable name and scope selector
907
- parts = identifier_name.split('<', 1)
908
- if len(parts) == 2:
909
- var_name = parts[0]
910
- scope_selector = parts[1][:-1] # Remove the closing >
911
- # For variable expressions in assignments, keep the full scoped name
912
- return VariableExpression(identifier_name)
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.25
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=cpNlMoFPJRzh32B2Q7_IwcsrxLVLvnVsyE7jWlQC1dM,708
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=15E_OXXEHYmGAaqS-eCqI-sSIJ4LDk6soSeBbfo_qVg,43350
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.25.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
21
- minecraft_datapack_language-15.4.25.dist-info/METADATA,sha256=YGa1EZ268bYICR68n8J-LipaKPObtEORC5jTL4oWXro,37917
22
- minecraft_datapack_language-15.4.25.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
23
- minecraft_datapack_language-15.4.25.dist-info/entry_points.txt,sha256=c6vjBeCiyQflvPHBRyBk2nJCSfYt3Oc7Sc9V87ySi_U,108
24
- minecraft_datapack_language-15.4.25.dist-info/top_level.txt,sha256=ADtFI476tbKLLxEAA-aJQAfg53MA3k_DOb0KTFiggfw,28
25
- minecraft_datapack_language-15.4.25.dist-info/RECORD,,
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,,