IncludeCPP 3.8.5__py3-none-any.whl → 3.8.7__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.
includecpp/__init__.py CHANGED
@@ -2,7 +2,7 @@ from .core.cpp_api import CppApi
2
2
  from .core import cssl_bridge as CSSL
3
3
  import warnings
4
4
 
5
- __version__ = "3.8.5"
5
+ __version__ = "3.8.7"
6
6
  __all__ = ["CppApi", "CSSL"]
7
7
 
8
8
  # Module-level cache for C++ modules
@@ -1,6 +1,6 @@
1
1
  # CSSL - C-Style Scripting Language
2
2
 
3
- > Version 3.8.5 | A modern scripting language with C++-style syntax and unique features like CodeInfusion, BruteInjection, and Python Interop.
3
+ > Version 3.8.6 | A modern scripting language with C++-style syntax and unique features like CodeInfusion, BruteInjection, and Python Interop.
4
4
 
5
5
  ---
6
6
 
@@ -1591,6 +1591,54 @@ class CSSLParser:
1591
1591
  # Just method name, no class qualifier
1592
1592
  return class_ref
1593
1593
 
1594
+ def _parse_parameter_list(self) -> list:
1595
+ """Parse a list of parameters (without the surrounding parentheses).
1596
+
1597
+ Returns a list of parameter definitions, each can be:
1598
+ - Simple string name: "paramName"
1599
+ - Dict with type info: {'name': 'paramName', 'type': 'string', 'ref': True, ...}
1600
+ """
1601
+ params = []
1602
+ while not self._check(TokenType.PAREN_END) and not self._is_at_end():
1603
+ param_info = {}
1604
+
1605
+ # Handle 'open' keyword for open parameters
1606
+ if self._match_keyword('open'):
1607
+ param_info['open'] = True
1608
+
1609
+ # Handle type annotations (e.g., string, int, dynamic, etc.)
1610
+ if self._check(TokenType.KEYWORD):
1611
+ param_info['type'] = self._advance().value
1612
+
1613
+ # Handle reference operator &
1614
+ if self._match(TokenType.AMPERSAND):
1615
+ param_info['ref'] = True
1616
+
1617
+ # Handle * prefix for non-null parameters
1618
+ if self._match(TokenType.MULTIPLY):
1619
+ param_info['non_null'] = True
1620
+
1621
+ # Get parameter name
1622
+ if self._check(TokenType.IDENTIFIER):
1623
+ param_name = self._advance().value
1624
+ if param_info:
1625
+ params.append({'name': param_name, **param_info})
1626
+ else:
1627
+ params.append(param_name)
1628
+ self._match(TokenType.COMMA)
1629
+ elif self._check(TokenType.KEYWORD):
1630
+ # Parameter name could be a keyword like 'Params'
1631
+ param_name = self._advance().value
1632
+ if param_info:
1633
+ params.append({'name': param_name, **param_info})
1634
+ else:
1635
+ params.append(param_name)
1636
+ self._match(TokenType.COMMA)
1637
+ else:
1638
+ break
1639
+
1640
+ return params
1641
+
1594
1642
  def _parse_define(self) -> ASTNode:
1595
1643
  """Parse define function declaration.
1596
1644
 
@@ -1781,8 +1829,9 @@ class CSSLParser:
1781
1829
  # Super-function for .cssl-pl payload files
1782
1830
  return self._parse_super_function()
1783
1831
  elif (self._check(TokenType.KEYWORD) and self._current().value == 'super' and
1784
- self._peek(1).type == TokenType.PAREN_START):
1785
- # super() call - calls parent constructor/method
1832
+ (self._peek(1).type == TokenType.PAREN_START or
1833
+ self._peek(1).type == TokenType.DOUBLE_COLON)):
1834
+ # super() or super::method() call - calls parent constructor/method
1786
1835
  return self._parse_super_call()
1787
1836
  elif (self._check(TokenType.IDENTIFIER) or self._check(TokenType.AT) or
1788
1837
  self._check(TokenType.CAPTURED_REF) or self._check(TokenType.SHARED_REF) or
@@ -1242,7 +1242,7 @@ class CSSLRuntime:
1242
1242
  for child in extends_resolved.children:
1243
1243
  if not self._running:
1244
1244
  break
1245
- self._execute(child)
1245
+ self._execute_node(child)
1246
1246
  # Copy all local vars to new scope
1247
1247
  for name, value in temp_scope._vars.items():
1248
1248
  new_scope.set(name, value)
@@ -1537,7 +1537,11 @@ class CSSLRuntime:
1537
1537
  )
1538
1538
 
1539
1539
  instance = self._current_instance
1540
+
1541
+ # Try to get parent from instance first, then from class definition
1540
1542
  parent = getattr(instance, '_parent_class', None)
1543
+ if parent is None and hasattr(instance, '_class') and instance._class:
1544
+ parent = getattr(instance._class, 'parent', None)
1541
1545
 
1542
1546
  if parent is None:
1543
1547
  raise CSSLRuntimeError(
@@ -3315,7 +3319,7 @@ class CSSLRuntime:
3315
3319
 
3316
3320
  try:
3317
3321
  for stmt in constr_node.children:
3318
- self._execute(stmt)
3322
+ self._execute_node(stmt)
3319
3323
  finally:
3320
3324
  self.scope = prev_scope
3321
3325
  self._current_instance = prev_instance
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IncludeCPP
3
- Version: 3.8.5
3
+ Version: 3.8.7
4
4
  Summary: Professional C++ Python bindings with type-generic templates, pystubs and native threading
5
5
  Home-page: https://github.com/liliassg/IncludeCPP
6
6
  Author: Lilias Hatterscheidt
@@ -1,4 +1,4 @@
1
- includecpp/__init__.py,sha256=zs_nWL1lh7LottYC3xmHPe8mmMJBddjPzG6hVfi1XJ8,1672
1
+ includecpp/__init__.py,sha256=XehkUKWTlBllchYznqTq8kdkAzjlMUWS0uSN4TESPak,1672
2
2
  includecpp/__init__.pyi,sha256=uSDYlbqd2TinmrdepmE_zvN25jd3Co2cgyPzXgDpopM,7193
3
3
  includecpp/__main__.py,sha256=d6QK0PkvUe1ENofpmHRAg3bwNbZr8PiRscfI3-WRfVg,72
4
4
  includecpp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -19,14 +19,14 @@ includecpp/core/exceptions.py,sha256=szeF4qdzi_q8hBBZi7mJxkliyQ0crplkLYe0ymlBGtk
19
19
  includecpp/core/path_discovery.py,sha256=jI0oSq6Hsd4LKXmU4dOiGSrXcEO_KWMXfQ5_ylBmXvU,2561
20
20
  includecpp/core/project_ui.py,sha256=la2EQZKmUkJGuJxnbs09hH1ZhBh9bfndo6okzZsk2dQ,141134
21
21
  includecpp/core/settings_ui.py,sha256=B2SlwgdplF2KiBk5UYf2l8Jjifjd0F-FmBP0DPsVCEQ,11798
22
- includecpp/core/cssl/CSSL_DOCUMENTATION.md,sha256=AUmEIaf7YDnkvu_ErJlenFBk2d6eBiohdbf-FFCgUWI,48051
22
+ includecpp/core/cssl/CSSL_DOCUMENTATION.md,sha256=UF2RpPyuUWrU08E49t19OcsGModkwlRvajDWifCxqFo,48051
23
23
  includecpp/core/cssl/__init__.py,sha256=scDXRBNK2L6A8qmlpNyaqQj6BFcSfPInBlucdeNfMF0,1975
24
24
  includecpp/core/cssl/cssl_builtins.py,sha256=oPsPyQk5b0b1I02Y80oIaDX39GOeG32-nBPEqwbo_Pw,105110
25
25
  includecpp/core/cssl/cssl_builtins.pyi,sha256=3ai2V4LyhzPBhAKjRRf0rLVu_bg9ECmTfTkdFKM64iA,127430
26
26
  includecpp/core/cssl/cssl_events.py,sha256=nupIcXW_Vjdud7zCU6hdwkQRQ0MujlPM7Tk2u7eDAiY,21013
27
27
  includecpp/core/cssl/cssl_modules.py,sha256=cUg0-zdymMnWWTsA_BUrW5dx4R04dHpKcUhm-Wfiwwo,103006
28
- includecpp/core/cssl/cssl_parser.py,sha256=Xm3-Dog9AL_usa9N4TxJ6YMkVBGaRqbJDCkhxLZi4UE,134527
29
- includecpp/core/cssl/cssl_runtime.py,sha256=5felSp18ESGN3SfcYz_vlh0TQ3_6oQCTE0QYDwGrYXk,177616
28
+ includecpp/core/cssl/cssl_parser.py,sha256=WACgaltY9Ex9m06kDhO7_I6pw8aAEtwP_isNqi4eVHQ,136512
29
+ includecpp/core/cssl/cssl_runtime.py,sha256=e_4XnjS2CkDhEdXb9P9lt3wxrQrcfZeGCIp4d1smTLA,177848
30
30
  includecpp/core/cssl/cssl_syntax.py,sha256=bgo3NFehoPTQa5dqwNd_CstkVGVCNYAXbGYUcu5BEN0,16982
31
31
  includecpp/core/cssl/cssl_types.py,sha256=7jbrtZf3xmVQJA_mnL9iYrmdjhjuc4--mxxNigi7fsk,53425
32
32
  includecpp/generator/__init__.py,sha256=Rsy41bwimaEloD3gDRR_znPfIJzIsCFuWZgCTJBLJlc,62
@@ -44,9 +44,9 @@ includecpp/vscode/cssl/images/cssl.png,sha256=BxAGsnfS0ZzzCvqV6Zb1OAJAZpDUoXlR86
44
44
  includecpp/vscode/cssl/images/cssl_pl.png,sha256=z4WMk7g6YCTbUUbSFk343BO6yi_OmNEVYkRenWGydwM,799
45
45
  includecpp/vscode/cssl/snippets/cssl.snippets.json,sha256=uV3nHJyQ5f7Pr3FzfbQT2VZOEY3AlGs4wrmqe884jm4,37372
46
46
  includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json,sha256=l62jwXdjMx7-awg5X9WNBrGs4m34uP8W1CV7U7cpP4Y,34004
47
- includecpp-3.8.5.dist-info/licenses/LICENSE,sha256=fWCsGGsiWZir0UzDd20Hh-3wtRyk1zqUntvtVuAWhvc,1093
48
- includecpp-3.8.5.dist-info/METADATA,sha256=NhzFH9VfYYyk1WKvI3k9MNTeJ4VrALZRU86uAzMEsA8,22510
49
- includecpp-3.8.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
50
- includecpp-3.8.5.dist-info/entry_points.txt,sha256=6A5Mif9gi0139Bf03W5plAb3wnAgbNaEVe1HJoGE-2o,59
51
- includecpp-3.8.5.dist-info/top_level.txt,sha256=RFUaR1KG-M6mCYwP6w4ydP5Cgc8yNbP78jxGAvyjMa8,11
52
- includecpp-3.8.5.dist-info/RECORD,,
47
+ includecpp-3.8.7.dist-info/licenses/LICENSE,sha256=fWCsGGsiWZir0UzDd20Hh-3wtRyk1zqUntvtVuAWhvc,1093
48
+ includecpp-3.8.7.dist-info/METADATA,sha256=QS4OGx8-HynrqTvTBw9wWR_4Hii85wlYP5NNYLWF6p8,22510
49
+ includecpp-3.8.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
50
+ includecpp-3.8.7.dist-info/entry_points.txt,sha256=6A5Mif9gi0139Bf03W5plAb3wnAgbNaEVe1HJoGE-2o,59
51
+ includecpp-3.8.7.dist-info/top_level.txt,sha256=RFUaR1KG-M6mCYwP6w4ydP5Cgc8yNbP78jxGAvyjMa8,11
52
+ includecpp-3.8.7.dist-info/RECORD,,