IncludeCPP 3.8.5__tar.gz → 3.8.7__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.
- {includecpp-3.8.5 → includecpp-3.8.7}/IncludeCPP.egg-info/PKG-INFO +1 -1
- {includecpp-3.8.5 → includecpp-3.8.7}/PKG-INFO +1 -1
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/__init__.py +1 -1
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cssl/CSSL_DOCUMENTATION.md +1 -1
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cssl/cssl_parser.py +51 -2
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cssl/cssl_runtime.py +6 -2
- {includecpp-3.8.5 → includecpp-3.8.7}/pyproject.toml +1 -1
- {includecpp-3.8.5 → includecpp-3.8.7}/IncludeCPP.egg-info/SOURCES.txt +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/IncludeCPP.egg-info/dependency_links.txt +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/IncludeCPP.egg-info/entry_points.txt +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/IncludeCPP.egg-info/requires.txt +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/IncludeCPP.egg-info/top_level.txt +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/LICENSE +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/MANIFEST.in +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/README.md +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/__init__.pyi +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/__main__.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/cli/__init__.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/cli/commands.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/cli/config_parser.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/__init__.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/ai_integration.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/build_manager.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cpp_api.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cpp_api.pyi +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cppy_converter.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cssl/__init__.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cssl/cssl_builtins.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cssl/cssl_builtins.pyi +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cssl/cssl_events.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cssl/cssl_modules.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cssl/cssl_syntax.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cssl/cssl_types.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cssl_bridge.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/cssl_bridge.pyi +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/error_catalog.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/error_formatter.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/exceptions.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/path_discovery.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/project_ui.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/core/settings_ui.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/generator/__init__.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/generator/parser.cpp +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/generator/parser.h +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/generator/type_resolver.cpp +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/generator/type_resolver.h +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/py.typed +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/templates/cpp.proj.template +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/vscode/__init__.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/vscode/cssl/__init__.py +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/vscode/cssl/extension.js +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/vscode/cssl/images/cssl.png +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/vscode/cssl/images/cssl_pl.png +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/vscode/cssl/language-configuration.json +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/vscode/cssl/package.json +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/vscode/cssl/snippets/cssl.snippets.json +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/requirements.txt +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/setup.cfg +0 -0
- {includecpp-3.8.5 → includecpp-3.8.7}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# CSSL - C-Style Scripting Language
|
|
2
2
|
|
|
3
|
-
> Version 3.8.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
3322
|
+
self._execute_node(stmt)
|
|
3319
3323
|
finally:
|
|
3320
3324
|
self.scope = prev_scope
|
|
3321
3325
|
self._current_instance = prev_instance
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "IncludeCPP"
|
|
7
|
-
version = "3.8.
|
|
7
|
+
version = "3.8.7"
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|