IncludeCPP 3.4.19__tar.gz → 3.5.2__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 (55) hide show
  1. {includecpp-3.4.19 → includecpp-3.5.2/IncludeCPP.egg-info}/PKG-INFO +270 -3
  2. {includecpp-3.4.19 → includecpp-3.5.2}/IncludeCPP.egg-info/SOURCES.txt +13 -1
  3. includecpp-3.4.19/README.md → includecpp-3.5.2/PKG-INFO +1076 -775
  4. includecpp-3.4.19/IncludeCPP.egg-info/PKG-INFO → includecpp-3.5.2/README.md +1042 -809
  5. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/__init__.py +1 -1
  6. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/cli/commands.py +104 -9
  7. includecpp-3.5.2/includecpp/core/cssl/CSSL_DOCUMENTATION.md +1482 -0
  8. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/cssl/cssl_builtins.py +41 -2
  9. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/cssl/cssl_parser.py +61 -13
  10. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/cssl/cssl_runtime.py +164 -17
  11. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/cssl/cssl_types.py +339 -2
  12. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/cssl_bridge.py +106 -5
  13. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/cssl_bridge.pyi +177 -0
  14. includecpp-3.5.2/includecpp/vscode/__init__.py +1 -0
  15. includecpp-3.5.2/includecpp/vscode/cssl/__init__.py +1 -0
  16. includecpp-3.5.2/includecpp/vscode/cssl/language-configuration.json +38 -0
  17. includecpp-3.5.2/includecpp/vscode/cssl/package.json +30 -0
  18. includecpp-3.5.2/includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json +221 -0
  19. {includecpp-3.4.19 → includecpp-3.5.2}/pyproject.toml +6 -3
  20. {includecpp-3.4.19 → includecpp-3.5.2}/IncludeCPP.egg-info/dependency_links.txt +0 -0
  21. {includecpp-3.4.19 → includecpp-3.5.2}/IncludeCPP.egg-info/entry_points.txt +0 -0
  22. {includecpp-3.4.19 → includecpp-3.5.2}/IncludeCPP.egg-info/requires.txt +0 -0
  23. {includecpp-3.4.19 → includecpp-3.5.2}/IncludeCPP.egg-info/top_level.txt +0 -0
  24. {includecpp-3.4.19 → includecpp-3.5.2}/LICENSE +0 -0
  25. {includecpp-3.4.19 → includecpp-3.5.2}/MANIFEST.in +0 -0
  26. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/__init__.pyi +0 -0
  27. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/__main__.py +0 -0
  28. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/cli/__init__.py +0 -0
  29. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/cli/config_parser.py +0 -0
  30. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/__init__.py +0 -0
  31. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/ai_integration.py +0 -0
  32. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/build_manager.py +0 -0
  33. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/cpp_api.py +0 -0
  34. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/cpp_api.pyi +0 -0
  35. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/cppy_converter.py +0 -0
  36. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/cssl/__init__.py +0 -0
  37. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/cssl/cssl_events.py +0 -0
  38. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/cssl/cssl_modules.py +0 -0
  39. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/cssl/cssl_syntax.py +0 -0
  40. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/error_catalog.py +0 -0
  41. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/error_formatter.py +0 -0
  42. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/exceptions.py +0 -0
  43. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/path_discovery.py +0 -0
  44. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/project_ui.py +0 -0
  45. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/core/settings_ui.py +0 -0
  46. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/generator/__init__.py +0 -0
  47. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/generator/parser.cpp +0 -0
  48. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/generator/parser.h +0 -0
  49. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/generator/type_resolver.cpp +0 -0
  50. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/generator/type_resolver.h +0 -0
  51. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/py.typed +0 -0
  52. {includecpp-3.4.19 → includecpp-3.5.2}/includecpp/templates/cpp.proj.template +0 -0
  53. {includecpp-3.4.19 → includecpp-3.5.2}/requirements.txt +0 -0
  54. {includecpp-3.4.19 → includecpp-3.5.2}/setup.cfg +0 -0
  55. {includecpp-3.4.19 → includecpp-3.5.2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: IncludeCPP
3
- Version: 3.4.19
3
+ Version: 3.5.2
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/hatte/IncludeCPP/issues
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.2 | [GitHub](https://github.com/liliassg/IncludeCPP)
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