IncludeCPP 3.8.5__tar.gz → 3.8.6__tar.gz

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 (60) hide show
  1. {includecpp-3.8.5 → includecpp-3.8.6}/IncludeCPP.egg-info/PKG-INFO +1 -1
  2. {includecpp-3.8.5 → includecpp-3.8.6}/PKG-INFO +1 -1
  3. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/__init__.py +1 -1
  4. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cssl/CSSL_DOCUMENTATION.md +1 -1
  5. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cssl/cssl_parser.py +51 -2
  6. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cssl/cssl_runtime.py +4 -0
  7. {includecpp-3.8.5 → includecpp-3.8.6}/pyproject.toml +1 -1
  8. {includecpp-3.8.5 → includecpp-3.8.6}/IncludeCPP.egg-info/SOURCES.txt +0 -0
  9. {includecpp-3.8.5 → includecpp-3.8.6}/IncludeCPP.egg-info/dependency_links.txt +0 -0
  10. {includecpp-3.8.5 → includecpp-3.8.6}/IncludeCPP.egg-info/entry_points.txt +0 -0
  11. {includecpp-3.8.5 → includecpp-3.8.6}/IncludeCPP.egg-info/requires.txt +0 -0
  12. {includecpp-3.8.5 → includecpp-3.8.6}/IncludeCPP.egg-info/top_level.txt +0 -0
  13. {includecpp-3.8.5 → includecpp-3.8.6}/LICENSE +0 -0
  14. {includecpp-3.8.5 → includecpp-3.8.6}/MANIFEST.in +0 -0
  15. {includecpp-3.8.5 → includecpp-3.8.6}/README.md +0 -0
  16. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/__init__.pyi +0 -0
  17. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/__main__.py +0 -0
  18. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/cli/__init__.py +0 -0
  19. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/cli/commands.py +0 -0
  20. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/cli/config_parser.py +0 -0
  21. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/__init__.py +0 -0
  22. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/ai_integration.py +0 -0
  23. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/build_manager.py +0 -0
  24. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cpp_api.py +0 -0
  25. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cpp_api.pyi +0 -0
  26. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cppy_converter.py +0 -0
  27. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cssl/__init__.py +0 -0
  28. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cssl/cssl_builtins.py +0 -0
  29. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cssl/cssl_builtins.pyi +0 -0
  30. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cssl/cssl_events.py +0 -0
  31. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cssl/cssl_modules.py +0 -0
  32. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cssl/cssl_syntax.py +0 -0
  33. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cssl/cssl_types.py +0 -0
  34. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cssl_bridge.py +0 -0
  35. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/cssl_bridge.pyi +0 -0
  36. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/error_catalog.py +0 -0
  37. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/error_formatter.py +0 -0
  38. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/exceptions.py +0 -0
  39. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/path_discovery.py +0 -0
  40. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/project_ui.py +0 -0
  41. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/core/settings_ui.py +0 -0
  42. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/generator/__init__.py +0 -0
  43. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/generator/parser.cpp +0 -0
  44. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/generator/parser.h +0 -0
  45. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/generator/type_resolver.cpp +0 -0
  46. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/generator/type_resolver.h +0 -0
  47. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/py.typed +0 -0
  48. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/templates/cpp.proj.template +0 -0
  49. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/vscode/__init__.py +0 -0
  50. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/vscode/cssl/__init__.py +0 -0
  51. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/vscode/cssl/extension.js +0 -0
  52. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/vscode/cssl/images/cssl.png +0 -0
  53. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/vscode/cssl/images/cssl_pl.png +0 -0
  54. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/vscode/cssl/language-configuration.json +0 -0
  55. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/vscode/cssl/package.json +0 -0
  56. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/vscode/cssl/snippets/cssl.snippets.json +0 -0
  57. {includecpp-3.8.5 → includecpp-3.8.6}/includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json +0 -0
  58. {includecpp-3.8.5 → includecpp-3.8.6}/requirements.txt +0 -0
  59. {includecpp-3.8.5 → includecpp-3.8.6}/setup.cfg +0 -0
  60. {includecpp-3.8.5 → includecpp-3.8.6}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IncludeCPP
3
- Version: 3.8.5
3
+ Version: 3.8.6
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IncludeCPP
3
- Version: 3.8.5
3
+ Version: 3.8.6
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
@@ -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.6"
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
@@ -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(
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "IncludeCPP"
7
- version = "3.8.5"
7
+ version = "3.8.6"
8
8
  description = "Professional C++ Python bindings with type-generic templates, pystubs and native threading"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes