IncludeCPP 3.4.19__tar.gz → 3.4.22__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.4.19 → includecpp-3.4.22/IncludeCPP.egg-info}/PKG-INFO +270 -3
- {includecpp-3.4.19 → includecpp-3.4.22}/IncludeCPP.egg-info/SOURCES.txt +13 -1
- includecpp-3.4.19/README.md → includecpp-3.4.22/PKG-INFO +1076 -775
- includecpp-3.4.19/IncludeCPP.egg-info/PKG-INFO → includecpp-3.4.22/README.md +1042 -809
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/__init__.py +1 -1
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/cli/commands.py +72 -3
- includecpp-3.4.22/includecpp/core/cssl/CSSL_DOCUMENTATION.md +1482 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/cssl/cssl_runtime.py +76 -2
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/cssl_bridge.py +6 -1
- includecpp-3.4.22/includecpp/vscode/__init__.py +1 -0
- includecpp-3.4.22/includecpp/vscode/cssl/__init__.py +1 -0
- includecpp-3.4.22/includecpp/vscode/cssl/language-configuration.json +38 -0
- includecpp-3.4.22/includecpp/vscode/cssl/package.json +30 -0
- includecpp-3.4.22/includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json +221 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/pyproject.toml +6 -3
- {includecpp-3.4.19 → includecpp-3.4.22}/IncludeCPP.egg-info/dependency_links.txt +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/IncludeCPP.egg-info/entry_points.txt +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/IncludeCPP.egg-info/requires.txt +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/IncludeCPP.egg-info/top_level.txt +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/LICENSE +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/MANIFEST.in +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/__init__.pyi +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/__main__.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/cli/__init__.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/cli/config_parser.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/__init__.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/ai_integration.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/build_manager.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/cpp_api.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/cpp_api.pyi +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/cppy_converter.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/cssl/__init__.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/cssl/cssl_builtins.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/cssl/cssl_events.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/cssl/cssl_modules.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/cssl/cssl_parser.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/cssl/cssl_syntax.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/cssl/cssl_types.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/cssl_bridge.pyi +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/error_catalog.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/error_formatter.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/exceptions.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/path_discovery.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/project_ui.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/core/settings_ui.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/generator/__init__.py +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/generator/parser.cpp +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/generator/parser.h +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/generator/type_resolver.cpp +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/generator/type_resolver.h +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/py.typed +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/includecpp/templates/cpp.proj.template +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/requirements.txt +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/setup.cfg +0 -0
- {includecpp-3.4.19 → includecpp-3.4.22}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: IncludeCPP
|
|
3
|
-
Version: 3.4.
|
|
3
|
+
Version: 3.4.22
|
|
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
|
|
@@ -621,10 +621,277 @@ Then check **"Enable Experimental Features"** and save.
|
|
|
621
621
|
- Have breaking changes between versions
|
|
622
622
|
- Be removed or significantly changed
|
|
623
623
|
|
|
624
|
-
Use at your own discretion. Report issues at: https://github.com/
|
|
624
|
+
Use at your own discretion. Report issues at: https://github.com/liliassg/IncludeCPP/issues
|
|
625
|
+
|
|
626
|
+
# CSSL - CSO Service Script Language
|
|
627
|
+
|
|
628
|
+
IncludeCPP includes CSSL, a scripting language with advanced data manipulation features.
|
|
629
|
+
|
|
630
|
+
## Basic Usage
|
|
631
|
+
|
|
632
|
+
```python
|
|
633
|
+
from includecpp import CSSL
|
|
634
|
+
|
|
635
|
+
# Execute CSSL code
|
|
636
|
+
CSSL.exec('''
|
|
637
|
+
printl("Hello from CSSL!");
|
|
638
|
+
|
|
639
|
+
int x = 10;
|
|
640
|
+
for (i in range(0, 5)) {
|
|
641
|
+
x = x + i;
|
|
642
|
+
}
|
|
643
|
+
printl(x);
|
|
644
|
+
''')
|
|
645
|
+
|
|
646
|
+
# Execute with arguments
|
|
647
|
+
result = CSSL.exec('''
|
|
648
|
+
int a = parameter.get(0);
|
|
649
|
+
int b = parameter.get(1);
|
|
650
|
+
parameter.return(a + b);
|
|
651
|
+
''', 5, 3)
|
|
652
|
+
print(result) # 8
|
|
653
|
+
```
|
|
654
|
+
|
|
655
|
+
## Live Object Sharing
|
|
656
|
+
|
|
657
|
+
Share Python objects with CSSL scripts. Changes in CSSL reflect back to Python:
|
|
658
|
+
|
|
659
|
+
```python
|
|
660
|
+
from includecpp import CSSL
|
|
661
|
+
|
|
662
|
+
class Counter:
|
|
663
|
+
def __init__(self):
|
|
664
|
+
self.value = 100
|
|
665
|
+
|
|
666
|
+
counter = Counter()
|
|
667
|
+
cssl = CSSL.CsslLang()
|
|
668
|
+
cssl.share(counter, "cnt")
|
|
669
|
+
|
|
670
|
+
# Modify in CSSL - changes reflect in Python!
|
|
671
|
+
cssl.exec('''
|
|
672
|
+
$cnt.value = $cnt.value - 10;
|
|
673
|
+
printl($cnt.value); // 90
|
|
674
|
+
''')
|
|
675
|
+
|
|
676
|
+
print(counter.value) # 90 - Changed!
|
|
677
|
+
```
|
|
678
|
+
|
|
679
|
+
### Shared Object Syntax
|
|
680
|
+
|
|
681
|
+
- `$name` - Access shared object
|
|
682
|
+
- `$name.property` - Access/modify properties
|
|
683
|
+
- `$name.method()` - Call methods
|
|
684
|
+
- `delete("name")` - Remove shared object
|
|
685
|
+
|
|
686
|
+
## Data Types
|
|
687
|
+
|
|
688
|
+
```cssl
|
|
689
|
+
// Basic types
|
|
690
|
+
int x = 42;
|
|
691
|
+
float pi = 3.14;
|
|
692
|
+
string name = "CSSL";
|
|
693
|
+
bool active = true;
|
|
694
|
+
|
|
695
|
+
// Collections
|
|
696
|
+
array<int> arr;
|
|
697
|
+
arr.push(1);
|
|
698
|
+
arr.push(2);
|
|
699
|
+
printl(arr.length()); // 2
|
|
700
|
+
|
|
701
|
+
vector<string> vec;
|
|
702
|
+
vec.push("A");
|
|
703
|
+
vec.push("B");
|
|
704
|
+
|
|
705
|
+
stack<int> s;
|
|
706
|
+
s.push(10);
|
|
707
|
+
s.pop();
|
|
708
|
+
```
|
|
709
|
+
|
|
710
|
+
## Control Flow
|
|
711
|
+
|
|
712
|
+
```cssl
|
|
713
|
+
// If/elif/else
|
|
714
|
+
if (x > 10) {
|
|
715
|
+
printl("big");
|
|
716
|
+
} elif (x > 5) {
|
|
717
|
+
printl("medium");
|
|
718
|
+
} else {
|
|
719
|
+
printl("small");
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
// For loops
|
|
723
|
+
for (i in range(0, 10)) {
|
|
724
|
+
printl(i);
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
for (i in range(0, 10, 2)) { // with step
|
|
728
|
+
printl(i); // 0, 2, 4, 6, 8
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
// Foreach
|
|
732
|
+
array<string> items;
|
|
733
|
+
items.push("A");
|
|
734
|
+
items.push("B");
|
|
735
|
+
foreach (item in items) {
|
|
736
|
+
printl(item);
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
// While
|
|
740
|
+
int count = 0;
|
|
741
|
+
while (count < 5) {
|
|
742
|
+
printl(count);
|
|
743
|
+
count = count + 1;
|
|
744
|
+
}
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
## Functions
|
|
748
|
+
|
|
749
|
+
```cssl
|
|
750
|
+
// Basic function
|
|
751
|
+
void greet(string name) {
|
|
752
|
+
printl("Hello, " + name + "!");
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
// Return value
|
|
756
|
+
int add(int a, int b) {
|
|
757
|
+
return a + b;
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
// Global variables
|
|
761
|
+
global version = "1.0.0";
|
|
762
|
+
printl(@version);
|
|
763
|
+
|
|
764
|
+
// r@ syntax for global declaration
|
|
765
|
+
r@myGlobal = "value";
|
|
766
|
+
printl(@myGlobal);
|
|
767
|
+
```
|
|
768
|
+
|
|
769
|
+
## BruteForce Injection System
|
|
770
|
+
|
|
771
|
+
CSSL's unique injection operators for data manipulation:
|
|
772
|
+
|
|
773
|
+
```cssl
|
|
774
|
+
// <== Move data (replaces target)
|
|
775
|
+
target <== source;
|
|
776
|
+
|
|
777
|
+
// +<== Copy & add to target
|
|
778
|
+
target +<== source;
|
|
779
|
+
|
|
780
|
+
// -<== Move & remove from source
|
|
781
|
+
target -<== source;
|
|
782
|
+
|
|
783
|
+
// <<== Code infusion into functions
|
|
784
|
+
myFunc() <<== {
|
|
785
|
+
printl("Injected code!");
|
|
786
|
+
};
|
|
787
|
+
|
|
788
|
+
// +<<== Add code without replacing
|
|
789
|
+
myFunc() +<<== {
|
|
790
|
+
printl("Additional code!");
|
|
791
|
+
};
|
|
792
|
+
```
|
|
793
|
+
|
|
794
|
+
## String Methods
|
|
795
|
+
|
|
796
|
+
```cssl
|
|
797
|
+
string s = "Hello World";
|
|
798
|
+
|
|
799
|
+
// Methods
|
|
800
|
+
s.length(); // 11
|
|
801
|
+
s.toUpper(); // "HELLO WORLD"
|
|
802
|
+
s.toLower(); // "hello world"
|
|
803
|
+
s.contains("World"); // true
|
|
804
|
+
s.startsWith("Hello"); // true
|
|
805
|
+
s.endsWith("World"); // true
|
|
806
|
+
s.replace("World", "CSSL");
|
|
807
|
+
s.split(" "); // ["Hello", "World"]
|
|
808
|
+
s.trim(); // Remove whitespace
|
|
809
|
+
s.substring(0, 5); // "Hello"
|
|
810
|
+
```
|
|
811
|
+
|
|
812
|
+
## CSSL Modules
|
|
813
|
+
|
|
814
|
+
```python
|
|
815
|
+
# Create callable module
|
|
816
|
+
module = CSSL.module('''
|
|
817
|
+
string name = parameter.get(0);
|
|
818
|
+
printl("Hello, " + name + "!");
|
|
819
|
+
''')
|
|
820
|
+
module("World") # Prints: Hello, World!
|
|
821
|
+
|
|
822
|
+
# Create module with functions
|
|
823
|
+
math_mod = CSSL.makemodule('''
|
|
824
|
+
int add(int a, int b) {
|
|
825
|
+
return a + b;
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
int multiply(int a, int b) {
|
|
829
|
+
return a * b;
|
|
830
|
+
}
|
|
831
|
+
''')
|
|
832
|
+
print(math_mod.add(2, 3)) # 5
|
|
833
|
+
print(math_mod.multiply(4, 5)) # 20
|
|
834
|
+
```
|
|
835
|
+
|
|
836
|
+
## Inline Payloads
|
|
837
|
+
|
|
838
|
+
```python
|
|
839
|
+
cssl = CSSL.CsslLang()
|
|
840
|
+
|
|
841
|
+
# Register code as payload
|
|
842
|
+
cssl.code("helpers", '''
|
|
843
|
+
global version = "1.0.0";
|
|
844
|
+
void log(string msg) {
|
|
845
|
+
printl("[LOG] " + msg);
|
|
846
|
+
}
|
|
847
|
+
''')
|
|
848
|
+
|
|
849
|
+
# Use in CSSL
|
|
850
|
+
cssl.exec('''
|
|
851
|
+
payload("helpers");
|
|
852
|
+
@log("Application started");
|
|
853
|
+
printl(@version);
|
|
854
|
+
''')
|
|
855
|
+
```
|
|
625
856
|
|
|
626
857
|
# Changelog
|
|
627
858
|
|
|
859
|
+
## v3.4.20
|
|
860
|
+
- **Documentation:**
|
|
861
|
+
- Added complete CSSL language documentation
|
|
862
|
+
- Live object sharing with `$name` syntax
|
|
863
|
+
- Data types, control flow, functions, injection system
|
|
864
|
+
- String methods, modules, and inline payloads
|
|
865
|
+
|
|
866
|
+
## v3.4.19
|
|
867
|
+
- **Critical Bug Fixes:**
|
|
868
|
+
- Fixed generator raw string literal in parser.cpp (regex pattern with `)"` prematurely terminated)
|
|
869
|
+
- Fixed shared object property writes inside loops not persisting to Python
|
|
870
|
+
- Added member_access handling in flow operations for shared objects
|
|
871
|
+
|
|
872
|
+
## v3.4.18
|
|
873
|
+
- **Bug Fix:**
|
|
874
|
+
- Attempted fix for shared object loop writes (partially fixed)
|
|
875
|
+
|
|
876
|
+
## v3.4.17
|
|
877
|
+
- **New Feature: Live Object Sharing**
|
|
878
|
+
- `cssl.share(instance, name)` - Share Python objects with CSSL
|
|
879
|
+
- `$name` syntax for accessing shared objects
|
|
880
|
+
- Live bidirectional updates - changes in CSSL reflect in Python
|
|
881
|
+
- `delete("name")` builtin for removing shared objects
|
|
882
|
+
- Shared object metadata stored in `%APPDATA%/IncludeCPP/shared_objects/`
|
|
883
|
+
|
|
884
|
+
## v3.4.16
|
|
885
|
+
- **CSSL Bug Fixes:**
|
|
886
|
+
- Fixed `startsWith()` and `endsWith()` parser errors
|
|
887
|
+
|
|
888
|
+
## v3.4.15
|
|
889
|
+
- **CSSL Enhancements:**
|
|
890
|
+
- Added `elif` keyword support
|
|
891
|
+
- Added `range(start, end, step)` with step parameter
|
|
892
|
+
- Added `begin()` and `end()` methods to all collection types
|
|
893
|
+
- Added `cssl.code(name, code)` for inline payload registration
|
|
894
|
+
|
|
628
895
|
## v3.4.2
|
|
629
896
|
- **New Feature: `exec` Command**
|
|
630
897
|
- Interactive REPL for quick code testing without creating files
|
|
@@ -806,4 +1073,4 @@ Use at your own discretion. Report issues at: https://github.com/hatte/IncludeCP
|
|
|
806
1073
|
|
|
807
1074
|
---
|
|
808
1075
|
|
|
809
|
-
MIT License | v3.4.
|
|
1076
|
+
MIT License | v3.4.20 | [GitHub](https://github.com/liliassg/IncludeCPP)
|
|
@@ -25,6 +25,7 @@ setup.py
|
|
|
25
25
|
./includecpp/core/path_discovery.py
|
|
26
26
|
./includecpp/core/project_ui.py
|
|
27
27
|
./includecpp/core/settings_ui.py
|
|
28
|
+
./includecpp/core/cssl/CSSL_DOCUMENTATION.md
|
|
28
29
|
./includecpp/core/cssl/__init__.py
|
|
29
30
|
./includecpp/core/cssl/cssl_builtins.py
|
|
30
31
|
./includecpp/core/cssl/cssl_events.py
|
|
@@ -39,6 +40,11 @@ setup.py
|
|
|
39
40
|
./includecpp/generator/type_resolver.cpp
|
|
40
41
|
./includecpp/generator/type_resolver.h
|
|
41
42
|
./includecpp/templates/cpp.proj.template
|
|
43
|
+
./includecpp/vscode/__init__.py
|
|
44
|
+
./includecpp/vscode/cssl/__init__.py
|
|
45
|
+
./includecpp/vscode/cssl/language-configuration.json
|
|
46
|
+
./includecpp/vscode/cssl/package.json
|
|
47
|
+
./includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json
|
|
42
48
|
IncludeCPP.egg-info/PKG-INFO
|
|
43
49
|
IncludeCPP.egg-info/SOURCES.txt
|
|
44
50
|
IncludeCPP.egg-info/dependency_links.txt
|
|
@@ -66,6 +72,7 @@ includecpp/core/exceptions.py
|
|
|
66
72
|
includecpp/core/path_discovery.py
|
|
67
73
|
includecpp/core/project_ui.py
|
|
68
74
|
includecpp/core/settings_ui.py
|
|
75
|
+
includecpp/core/cssl/CSSL_DOCUMENTATION.md
|
|
69
76
|
includecpp/core/cssl/__init__.py
|
|
70
77
|
includecpp/core/cssl/cssl_builtins.py
|
|
71
78
|
includecpp/core/cssl/cssl_events.py
|
|
@@ -79,4 +86,9 @@ includecpp/generator/parser.cpp
|
|
|
79
86
|
includecpp/generator/parser.h
|
|
80
87
|
includecpp/generator/type_resolver.cpp
|
|
81
88
|
includecpp/generator/type_resolver.h
|
|
82
|
-
includecpp/templates/cpp.proj.template
|
|
89
|
+
includecpp/templates/cpp.proj.template
|
|
90
|
+
includecpp/vscode/__init__.py
|
|
91
|
+
includecpp/vscode/cssl/__init__.py
|
|
92
|
+
includecpp/vscode/cssl/language-configuration.json
|
|
93
|
+
includecpp/vscode/cssl/package.json
|
|
94
|
+
includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json
|