IncludeCPP 3.4.21__py3-none-any.whl → 3.5.0__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 +1 -1
- includecpp/cli/commands.py +100 -6
- includecpp/core/cssl/cssl_runtime.py +76 -2
- includecpp/core/cssl_bridge.py +6 -1
- includecpp/vscode/__init__.py +1 -0
- includecpp/vscode/cssl/__init__.py +1 -0
- includecpp/vscode/cssl/language-configuration.json +38 -0
- includecpp/vscode/cssl/package.json +30 -0
- includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json +221 -0
- {includecpp-3.4.21.dist-info → includecpp-3.5.0.dist-info}/METADATA +1 -1
- {includecpp-3.4.21.dist-info → includecpp-3.5.0.dist-info}/RECORD +15 -10
- {includecpp-3.4.21.dist-info → includecpp-3.5.0.dist-info}/WHEEL +0 -0
- {includecpp-3.4.21.dist-info → includecpp-3.5.0.dist-info}/entry_points.txt +0 -0
- {includecpp-3.4.21.dist-info → includecpp-3.5.0.dist-info}/licenses/LICENSE +0 -0
- {includecpp-3.4.21.dist-info → includecpp-3.5.0.dist-info}/top_level.txt +0 -0
includecpp/__init__.py
CHANGED
includecpp/cli/commands.py
CHANGED
|
@@ -7139,20 +7139,21 @@ def cppy_types():
|
|
|
7139
7139
|
# EXEC - Interactive Code Execution
|
|
7140
7140
|
# ============================================================================
|
|
7141
7141
|
|
|
7142
|
-
@cli.command()
|
|
7143
|
-
@click.argument('lang', type=click.Choice(['py', 'cpp', 'python', 'c++']))
|
|
7142
|
+
@cli.command(name='exec')
|
|
7143
|
+
@click.argument('lang', type=click.Choice(['py', 'cpp', 'python', 'c++', 'cssl']))
|
|
7144
7144
|
@click.argument('path', required=False, type=click.Path())
|
|
7145
7145
|
@click.option('--all', 'import_all', is_flag=True, help='Import all available modules')
|
|
7146
|
-
def
|
|
7146
|
+
def exec_repl(lang, path, import_all):
|
|
7147
7147
|
"""Execute code interactively for quick testing.
|
|
7148
7148
|
|
|
7149
|
-
Run Python
|
|
7149
|
+
Run Python, C++ or CSSL code snippets without creating files.
|
|
7150
7150
|
Perfect for testing your IncludeCPP modules quickly.
|
|
7151
7151
|
|
|
7152
7152
|
\b
|
|
7153
7153
|
Usage:
|
|
7154
7154
|
includecpp exec py # Interactive Python
|
|
7155
7155
|
includecpp exec cpp # Interactive C++
|
|
7156
|
+
includecpp exec cssl # Interactive CSSL
|
|
7156
7157
|
includecpp exec py mymodule # Auto-import mymodule
|
|
7157
7158
|
includecpp exec py plugins/x.cp # Auto-import from plugin
|
|
7158
7159
|
includecpp exec py --all # Import all modules
|
|
@@ -7178,7 +7179,8 @@ def exec(lang, path, import_all):
|
|
|
7178
7179
|
|
|
7179
7180
|
# Normalize language
|
|
7180
7181
|
is_python = lang in ('py', 'python')
|
|
7181
|
-
|
|
7182
|
+
is_cssl = lang == 'cssl'
|
|
7183
|
+
lang_name = 'Python' if is_python else ('CSSL' if is_cssl else 'C++')
|
|
7182
7184
|
|
|
7183
7185
|
# Build imports/includes
|
|
7184
7186
|
imports = []
|
|
@@ -7286,6 +7288,7 @@ def exec(lang, path, import_all):
|
|
|
7286
7288
|
|
|
7287
7289
|
if is_python:
|
|
7288
7290
|
# Execute Python code
|
|
7291
|
+
import builtins
|
|
7289
7292
|
full_code = '\n'.join(code_lines)
|
|
7290
7293
|
try:
|
|
7291
7294
|
# Use exec with captured output
|
|
@@ -7299,7 +7302,7 @@ def exec(lang, path, import_all):
|
|
|
7299
7302
|
exec_globals = {'__name__': '__main__'}
|
|
7300
7303
|
|
|
7301
7304
|
with redirect_stdout(stdout_capture), redirect_stderr(stderr_capture):
|
|
7302
|
-
exec(full_code, exec_globals)
|
|
7305
|
+
builtins.exec(full_code, exec_globals)
|
|
7303
7306
|
|
|
7304
7307
|
stdout_val = stdout_capture.getvalue()
|
|
7305
7308
|
stderr_val = stderr_capture.getvalue()
|
|
@@ -7315,6 +7318,29 @@ def exec(lang, path, import_all):
|
|
|
7315
7318
|
except Exception as e:
|
|
7316
7319
|
click.secho(f"Error: {e}", fg='red')
|
|
7317
7320
|
|
|
7321
|
+
elif is_cssl:
|
|
7322
|
+
# Execute CSSL code
|
|
7323
|
+
full_code = '\n'.join(lines)
|
|
7324
|
+
try:
|
|
7325
|
+
from ..core.cssl_bridge import CsslLang
|
|
7326
|
+
cssl_lang = CsslLang()
|
|
7327
|
+
result = cssl_lang.exec(full_code)
|
|
7328
|
+
|
|
7329
|
+
# Print any output from the execution
|
|
7330
|
+
output = cssl_lang.get_output()
|
|
7331
|
+
if output:
|
|
7332
|
+
for line in output:
|
|
7333
|
+
click.echo(line)
|
|
7334
|
+
|
|
7335
|
+
if result is not None:
|
|
7336
|
+
click.echo(result)
|
|
7337
|
+
|
|
7338
|
+
if not output and result is None:
|
|
7339
|
+
click.secho("(no output)", fg='bright_black')
|
|
7340
|
+
|
|
7341
|
+
except Exception as e:
|
|
7342
|
+
click.secho(f"Error: {e}", fg='red')
|
|
7343
|
+
|
|
7318
7344
|
else:
|
|
7319
7345
|
# Execute C++ code
|
|
7320
7346
|
# Build a complete C++ program
|
|
@@ -7631,6 +7657,74 @@ void error(string message) {{
|
|
|
7631
7657
|
click.echo(f" CSSL.exec('{cssl_file}')")
|
|
7632
7658
|
|
|
7633
7659
|
|
|
7660
|
+
@cssl.command(name='vscode')
|
|
7661
|
+
def cssl_vscode():
|
|
7662
|
+
"""Install VSCode extension for CSSL syntax highlighting."""
|
|
7663
|
+
from pathlib import Path as PathLib
|
|
7664
|
+
import shutil
|
|
7665
|
+
import os
|
|
7666
|
+
|
|
7667
|
+
# Find VSCode extensions directory
|
|
7668
|
+
if os.name == 'nt': # Windows
|
|
7669
|
+
vscode_ext_dir = PathLib(os.environ.get('USERPROFILE', '')) / '.vscode' / 'extensions'
|
|
7670
|
+
else: # Linux/Mac
|
|
7671
|
+
vscode_ext_dir = PathLib.home() / '.vscode' / 'extensions'
|
|
7672
|
+
|
|
7673
|
+
if not vscode_ext_dir.exists():
|
|
7674
|
+
# Try VSCode Insiders
|
|
7675
|
+
if os.name == 'nt':
|
|
7676
|
+
vscode_ext_dir = PathLib(os.environ.get('USERPROFILE', '')) / '.vscode-insiders' / 'extensions'
|
|
7677
|
+
else:
|
|
7678
|
+
vscode_ext_dir = PathLib.home() / '.vscode-insiders' / 'extensions'
|
|
7679
|
+
|
|
7680
|
+
if not vscode_ext_dir.exists():
|
|
7681
|
+
click.secho("VSCode extensions directory not found.", fg='red')
|
|
7682
|
+
click.echo("Make sure VSCode is installed.")
|
|
7683
|
+
click.echo()
|
|
7684
|
+
click.echo("Expected locations:")
|
|
7685
|
+
if os.name == 'nt':
|
|
7686
|
+
click.echo(f" %USERPROFILE%\\.vscode\\extensions")
|
|
7687
|
+
else:
|
|
7688
|
+
click.echo(f" ~/.vscode/extensions")
|
|
7689
|
+
return
|
|
7690
|
+
|
|
7691
|
+
# Find our bundled extension
|
|
7692
|
+
package_dir = PathLib(__file__).parent.parent
|
|
7693
|
+
source_ext_dir = package_dir / 'vscode' / 'cssl'
|
|
7694
|
+
|
|
7695
|
+
if not source_ext_dir.exists():
|
|
7696
|
+
click.secho("CSSL extension files not found in package.", fg='red')
|
|
7697
|
+
return
|
|
7698
|
+
|
|
7699
|
+
# Install extension
|
|
7700
|
+
target_dir = vscode_ext_dir / 'includecpp.cssl-1.0.0'
|
|
7701
|
+
|
|
7702
|
+
try:
|
|
7703
|
+
if target_dir.exists():
|
|
7704
|
+
shutil.rmtree(target_dir)
|
|
7705
|
+
|
|
7706
|
+
shutil.copytree(source_ext_dir, target_dir)
|
|
7707
|
+
|
|
7708
|
+
click.secho("CSSL VSCode extension installed!", fg='green', bold=True)
|
|
7709
|
+
click.echo()
|
|
7710
|
+
click.echo(f"Installed to: {target_dir}")
|
|
7711
|
+
click.echo()
|
|
7712
|
+
click.echo("Features:")
|
|
7713
|
+
click.echo(" - Syntax highlighting for .cssl, .cssl-pl, .cssl-mod files")
|
|
7714
|
+
click.echo(" - BruteInjection operators: <==, ==>, <<==, +<==, etc.")
|
|
7715
|
+
click.echo(" - Type highlighting: int, string, stack<T>, datastruct<T>")
|
|
7716
|
+
click.echo(" - Global references: @Name, r@Name, s@Name")
|
|
7717
|
+
click.echo(" - Shared objects: $Name")
|
|
7718
|
+
click.echo(" - Filter helpers: string::contains, json::key, etc.")
|
|
7719
|
+
click.echo()
|
|
7720
|
+
click.secho("Restart VSCode to activate the extension.", fg='yellow')
|
|
7721
|
+
|
|
7722
|
+
except PermissionError:
|
|
7723
|
+
click.secho("Permission denied. Try running as administrator.", fg='red')
|
|
7724
|
+
except Exception as e:
|
|
7725
|
+
click.secho(f"Installation failed: {e}", fg='red')
|
|
7726
|
+
|
|
7727
|
+
|
|
7634
7728
|
# Register hidden cssl command group
|
|
7635
7729
|
cli.add_command(cssl)
|
|
7636
7730
|
|
|
@@ -145,6 +145,8 @@ class CSSLRuntime:
|
|
|
145
145
|
self._running = False
|
|
146
146
|
self._exit_code = 0
|
|
147
147
|
self._output_callback = output_callback # Callback for console output (text, level)
|
|
148
|
+
self._source_lines: List[str] = [] # Store source code lines for error reporting
|
|
149
|
+
self._current_file: str = "<code>" # Current file being executed
|
|
148
150
|
|
|
149
151
|
self._setup_modules()
|
|
150
152
|
self._setup_builtins()
|
|
@@ -230,23 +232,68 @@ class CSSLRuntime:
|
|
|
230
232
|
|
|
231
233
|
return obj
|
|
232
234
|
|
|
235
|
+
def _format_error(self, line: int, message: str, hint: str = None) -> CSSLRuntimeError:
|
|
236
|
+
"""Format a detailed error with source context"""
|
|
237
|
+
error_parts = []
|
|
238
|
+
|
|
239
|
+
# Main error header
|
|
240
|
+
if line and line > 0:
|
|
241
|
+
error_parts.append(f"Error at line {line} in {self._current_file}:")
|
|
242
|
+
else:
|
|
243
|
+
error_parts.append(f"Error in {self._current_file}:")
|
|
244
|
+
|
|
245
|
+
# Extract message without existing line info
|
|
246
|
+
clean_msg = message
|
|
247
|
+
if "at line" in clean_msg.lower():
|
|
248
|
+
# Remove redundant line info from message
|
|
249
|
+
clean_msg = clean_msg.split(":", 1)[-1].strip() if ":" in clean_msg else clean_msg
|
|
250
|
+
|
|
251
|
+
error_parts.append(f" {clean_msg}")
|
|
252
|
+
|
|
253
|
+
# Show source context (3 lines before and after)
|
|
254
|
+
if self._source_lines and line and line > 0:
|
|
255
|
+
error_parts.append("")
|
|
256
|
+
start = max(0, line - 3)
|
|
257
|
+
end = min(len(self._source_lines), line + 2)
|
|
258
|
+
|
|
259
|
+
for i in range(start, end):
|
|
260
|
+
line_num = i + 1
|
|
261
|
+
source_line = self._source_lines[i] if i < len(self._source_lines) else ""
|
|
262
|
+
marker = ">>>" if line_num == line else " "
|
|
263
|
+
error_parts.append(f" {marker} {line_num:4d} | {source_line}")
|
|
264
|
+
|
|
265
|
+
# Add hint
|
|
266
|
+
if hint:
|
|
267
|
+
error_parts.append("")
|
|
268
|
+
error_parts.append(f" Hint: {hint}")
|
|
269
|
+
|
|
270
|
+
return CSSLRuntimeError("\n".join(error_parts), line)
|
|
271
|
+
|
|
272
|
+
def _get_source_line(self, line: int) -> str:
|
|
273
|
+
"""Get source line by number (1-indexed)"""
|
|
274
|
+
if self._source_lines and 0 < line <= len(self._source_lines):
|
|
275
|
+
return self._source_lines[line - 1]
|
|
276
|
+
return ""
|
|
277
|
+
|
|
233
278
|
def execute(self, source: str) -> Any:
|
|
234
279
|
"""Execute CSSL service source code"""
|
|
280
|
+
self._source_lines = source.splitlines()
|
|
235
281
|
try:
|
|
236
282
|
ast = parse_cssl(source)
|
|
237
283
|
return self._execute_node(ast)
|
|
238
284
|
except CSSLSyntaxError as e:
|
|
239
|
-
raise
|
|
285
|
+
raise self._format_error(e.line, str(e))
|
|
240
286
|
except SyntaxError as e:
|
|
241
287
|
raise CSSLRuntimeError(f"Syntax error: {e}")
|
|
242
288
|
|
|
243
289
|
def execute_program(self, source: str) -> Any:
|
|
244
290
|
"""Execute standalone CSSL program (no service wrapper)"""
|
|
291
|
+
self._source_lines = source.splitlines()
|
|
245
292
|
try:
|
|
246
293
|
ast = parse_cssl_program(source)
|
|
247
294
|
return self._exec_program(ast)
|
|
248
295
|
except CSSLSyntaxError as e:
|
|
249
|
-
raise
|
|
296
|
+
raise self._format_error(e.line, str(e))
|
|
250
297
|
except SyntaxError as e:
|
|
251
298
|
raise CSSLRuntimeError(f"Syntax error: {e}")
|
|
252
299
|
|
|
@@ -256,12 +303,16 @@ class CSSLRuntime:
|
|
|
256
303
|
|
|
257
304
|
def execute_file(self, filepath: str) -> Any:
|
|
258
305
|
"""Execute a CSSL service file"""
|
|
306
|
+
import os
|
|
307
|
+
self._current_file = os.path.basename(filepath)
|
|
259
308
|
with open(filepath, 'r', encoding='utf-8') as f:
|
|
260
309
|
source = f.read()
|
|
261
310
|
return self.execute(source)
|
|
262
311
|
|
|
263
312
|
def execute_program_file(self, filepath: str) -> Any:
|
|
264
313
|
"""Execute a standalone CSSL program file"""
|
|
314
|
+
import os
|
|
315
|
+
self._current_file = os.path.basename(filepath)
|
|
265
316
|
with open(filepath, 'r', encoding='utf-8') as f:
|
|
266
317
|
source = f.read()
|
|
267
318
|
return self.execute_program(source)
|
|
@@ -1026,10 +1077,33 @@ class CSSLRuntime:
|
|
|
1026
1077
|
# === STRING HELPERS ===
|
|
1027
1078
|
if filter_type == 'string':
|
|
1028
1079
|
if helper == 'where':
|
|
1080
|
+
# Exact match
|
|
1081
|
+
if isinstance(result, str):
|
|
1082
|
+
result = result if result == filter_val else None
|
|
1083
|
+
elif isinstance(result, list):
|
|
1084
|
+
result = [item for item in result if isinstance(item, str) and item == filter_val]
|
|
1085
|
+
elif helper == 'contains':
|
|
1086
|
+
# Contains substring
|
|
1029
1087
|
if isinstance(result, str):
|
|
1030
1088
|
result = result if filter_val in result else None
|
|
1031
1089
|
elif isinstance(result, list):
|
|
1032
1090
|
result = [item for item in result if isinstance(item, str) and filter_val in item]
|
|
1091
|
+
elif helper == 'not':
|
|
1092
|
+
# Exclude matching
|
|
1093
|
+
if isinstance(result, str):
|
|
1094
|
+
result = result if result != filter_val else None
|
|
1095
|
+
elif isinstance(result, list):
|
|
1096
|
+
result = [item for item in result if not (isinstance(item, str) and item == filter_val)]
|
|
1097
|
+
elif helper == 'startsWith':
|
|
1098
|
+
if isinstance(result, str):
|
|
1099
|
+
result = result if result.startswith(filter_val) else None
|
|
1100
|
+
elif isinstance(result, list):
|
|
1101
|
+
result = [item for item in result if isinstance(item, str) and item.startswith(filter_val)]
|
|
1102
|
+
elif helper == 'endsWith':
|
|
1103
|
+
if isinstance(result, str):
|
|
1104
|
+
result = result if result.endswith(filter_val) else None
|
|
1105
|
+
elif isinstance(result, list):
|
|
1106
|
+
result = [item for item in result if isinstance(item, str) and item.endswith(filter_val)]
|
|
1033
1107
|
elif helper in ('length', 'lenght'): # Support common typo
|
|
1034
1108
|
if isinstance(result, str):
|
|
1035
1109
|
result = result if len(result) == filter_val else None
|
includecpp/core/cssl_bridge.py
CHANGED
|
@@ -289,7 +289,12 @@ class CsslLang:
|
|
|
289
289
|
|
|
290
290
|
return result
|
|
291
291
|
except Exception as e:
|
|
292
|
-
|
|
292
|
+
# Format error message nicely
|
|
293
|
+
error_msg = str(e)
|
|
294
|
+
# Don't double-wrap error messages
|
|
295
|
+
if error_msg.startswith("CSSL Error:"):
|
|
296
|
+
raise RuntimeError(error_msg) from e
|
|
297
|
+
raise RuntimeError(f"CSSL Error:\n{error_msg}") from e
|
|
293
298
|
|
|
294
299
|
def T_exec(self, path_or_code: str, *args, callback: Optional[Callable[[Any], None]] = None) -> threading.Thread:
|
|
295
300
|
"""
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# VSCode extension resources for CSSL
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# CSSL VSCode extension files
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"comments": {
|
|
3
|
+
"lineComment": "//",
|
|
4
|
+
"blockComment": ["/*", "*/"]
|
|
5
|
+
},
|
|
6
|
+
"brackets": [
|
|
7
|
+
["{", "}"],
|
|
8
|
+
["[", "]"],
|
|
9
|
+
["(", ")"],
|
|
10
|
+
["<", ">"]
|
|
11
|
+
],
|
|
12
|
+
"autoClosingPairs": [
|
|
13
|
+
{ "open": "{", "close": "}" },
|
|
14
|
+
{ "open": "[", "close": "]" },
|
|
15
|
+
{ "open": "(", "close": ")" },
|
|
16
|
+
{ "open": "<", "close": ">" },
|
|
17
|
+
{ "open": "\"", "close": "\"", "notIn": ["string"] },
|
|
18
|
+
{ "open": "'", "close": "'", "notIn": ["string", "comment"] }
|
|
19
|
+
],
|
|
20
|
+
"surroundingPairs": [
|
|
21
|
+
["{", "}"],
|
|
22
|
+
["[", "]"],
|
|
23
|
+
["(", ")"],
|
|
24
|
+
["<", ">"],
|
|
25
|
+
["\"", "\""],
|
|
26
|
+
["'", "'"]
|
|
27
|
+
],
|
|
28
|
+
"folding": {
|
|
29
|
+
"markers": {
|
|
30
|
+
"start": "^\\s*//\\s*#?region\\b",
|
|
31
|
+
"end": "^\\s*//\\s*#?endregion\\b"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"indentationRules": {
|
|
35
|
+
"increaseIndentPattern": "^.*\\{[^}]*$",
|
|
36
|
+
"decreaseIndentPattern": "^\\s*\\}"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cssl",
|
|
3
|
+
"displayName": "CSSL - CSO Service Script Language",
|
|
4
|
+
"description": "Syntax highlighting and language support for CSSL scripts",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"publisher": "IncludeCPP",
|
|
7
|
+
"engines": {
|
|
8
|
+
"vscode": "^1.60.0"
|
|
9
|
+
},
|
|
10
|
+
"categories": [
|
|
11
|
+
"Programming Languages"
|
|
12
|
+
],
|
|
13
|
+
"contributes": {
|
|
14
|
+
"languages": [
|
|
15
|
+
{
|
|
16
|
+
"id": "cssl",
|
|
17
|
+
"aliases": ["CSSL", "cssl", "CSO Service Script"],
|
|
18
|
+
"extensions": [".cssl", ".cssl-pl", ".cssl-mod"],
|
|
19
|
+
"configuration": "./language-configuration.json"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"grammars": [
|
|
23
|
+
{
|
|
24
|
+
"language": "cssl",
|
|
25
|
+
"scopeName": "source.cssl",
|
|
26
|
+
"path": "./syntaxes/cssl.tmLanguage.json"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
|
|
3
|
+
"name": "CSSL",
|
|
4
|
+
"scopeName": "source.cssl",
|
|
5
|
+
"patterns": [
|
|
6
|
+
{ "include": "#comments" },
|
|
7
|
+
{ "include": "#strings" },
|
|
8
|
+
{ "include": "#numbers" },
|
|
9
|
+
{ "include": "#keywords" },
|
|
10
|
+
{ "include": "#types" },
|
|
11
|
+
{ "include": "#function-modifiers" },
|
|
12
|
+
{ "include": "#injection-operators" },
|
|
13
|
+
{ "include": "#filter-helpers" },
|
|
14
|
+
{ "include": "#global-references" },
|
|
15
|
+
{ "include": "#shared-references" },
|
|
16
|
+
{ "include": "#module-references" },
|
|
17
|
+
{ "include": "#function-calls" },
|
|
18
|
+
{ "include": "#operators" },
|
|
19
|
+
{ "include": "#constants" }
|
|
20
|
+
],
|
|
21
|
+
"repository": {
|
|
22
|
+
"comments": {
|
|
23
|
+
"patterns": [
|
|
24
|
+
{
|
|
25
|
+
"name": "comment.line.double-slash.cssl",
|
|
26
|
+
"match": "//.*$"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "comment.block.cssl",
|
|
30
|
+
"begin": "/\\*",
|
|
31
|
+
"end": "\\*/"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"strings": {
|
|
36
|
+
"patterns": [
|
|
37
|
+
{
|
|
38
|
+
"name": "string.quoted.double.cssl",
|
|
39
|
+
"begin": "\"",
|
|
40
|
+
"end": "\"",
|
|
41
|
+
"patterns": [
|
|
42
|
+
{
|
|
43
|
+
"name": "constant.character.escape.cssl",
|
|
44
|
+
"match": "\\\\."
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"name": "variable.other.interpolated.cssl",
|
|
48
|
+
"match": "<[a-zA-Z_][a-zA-Z0-9_]*>"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "string.quoted.single.cssl",
|
|
54
|
+
"begin": "'",
|
|
55
|
+
"end": "'",
|
|
56
|
+
"patterns": [
|
|
57
|
+
{
|
|
58
|
+
"name": "constant.character.escape.cssl",
|
|
59
|
+
"match": "\\\\."
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
"numbers": {
|
|
66
|
+
"patterns": [
|
|
67
|
+
{
|
|
68
|
+
"name": "constant.numeric.float.cssl",
|
|
69
|
+
"match": "\\b[0-9]+\\.[0-9]+\\b"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "constant.numeric.integer.cssl",
|
|
73
|
+
"match": "\\b[0-9]+\\b"
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"keywords": {
|
|
78
|
+
"patterns": [
|
|
79
|
+
{
|
|
80
|
+
"name": "keyword.control.cssl",
|
|
81
|
+
"match": "\\b(if|else|elif|while|for|foreach|in|range|switch|case|default|break|continue|return|try|catch|finally|throw)\\b"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"name": "keyword.other.cssl",
|
|
85
|
+
"match": "\\b(service-init|service-run|service-include|struct|structure|define|main|package|package-includes|exec|as|global|include|get|payload)\\b"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "keyword.operator.logical.cssl",
|
|
89
|
+
"match": "\\b(and|or|not)\\b"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"name": "keyword.other.async.cssl",
|
|
93
|
+
"match": "\\b(start|stop|wait_for|on_event|emit_event|await)\\b"
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
"types": {
|
|
98
|
+
"patterns": [
|
|
99
|
+
{
|
|
100
|
+
"name": "storage.type.primitive.cssl",
|
|
101
|
+
"match": "\\b(int|string|float|bool|void|json|dynamic)\\b"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"name": "storage.type.container.cssl",
|
|
105
|
+
"match": "\\b(array|vector|stack|datastruct|dataspace|shuffled|iterator|combo|openquote)\\b"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"name": "storage.type.generic.cssl",
|
|
109
|
+
"match": "\\b(array|vector|stack|datastruct|dataspace|shuffled|iterator|combo|openquote)\\s*<",
|
|
110
|
+
"captures": {
|
|
111
|
+
"1": { "name": "storage.type.container.cssl" }
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
"function-modifiers": {
|
|
117
|
+
"patterns": [
|
|
118
|
+
{
|
|
119
|
+
"name": "storage.modifier.cssl",
|
|
120
|
+
"match": "\\b(undefined|open|closed|private|virtual|meta|super|sqlbased)\\b"
|
|
121
|
+
}
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
"injection-operators": {
|
|
125
|
+
"patterns": [
|
|
126
|
+
{
|
|
127
|
+
"name": "keyword.operator.injection.cssl",
|
|
128
|
+
"match": "(\\+<<==|<<==|-<<==|==>>\\+|==>>|-==>>)"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"name": "keyword.operator.brute-injection.cssl",
|
|
132
|
+
"match": "(\\+<==|<==|-<==|==>\\+|==>|-==>)"
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
"filter-helpers": {
|
|
137
|
+
"patterns": [
|
|
138
|
+
{
|
|
139
|
+
"name": "support.function.filter.cssl",
|
|
140
|
+
"match": "\\b(string|integer|json|array|vector|combo|dynamic|sql)::(where|contains|not|startsWith|endsWith|length|lenght|key|value|index|filterdb|blocked|data)\\b"
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
},
|
|
144
|
+
"global-references": {
|
|
145
|
+
"patterns": [
|
|
146
|
+
{
|
|
147
|
+
"name": "variable.other.global.cssl",
|
|
148
|
+
"match": "@[a-zA-Z_][a-zA-Z0-9_]*"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"name": "variable.other.global-decl.cssl",
|
|
152
|
+
"match": "r@[a-zA-Z_][a-zA-Z0-9_]*"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"name": "variable.other.self-ref.cssl",
|
|
156
|
+
"match": "s@[a-zA-Z_][a-zA-Z0-9_]*"
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
},
|
|
160
|
+
"shared-references": {
|
|
161
|
+
"patterns": [
|
|
162
|
+
{
|
|
163
|
+
"name": "variable.other.shared.cssl",
|
|
164
|
+
"match": "\\$[a-zA-Z_][a-zA-Z0-9_]*"
|
|
165
|
+
}
|
|
166
|
+
]
|
|
167
|
+
},
|
|
168
|
+
"module-references": {
|
|
169
|
+
"patterns": [
|
|
170
|
+
{
|
|
171
|
+
"name": "entity.name.type.module.cssl",
|
|
172
|
+
"match": "@[A-Z][a-zA-Z0-9_]*"
|
|
173
|
+
}
|
|
174
|
+
]
|
|
175
|
+
},
|
|
176
|
+
"function-calls": {
|
|
177
|
+
"patterns": [
|
|
178
|
+
{
|
|
179
|
+
"name": "entity.name.function.cssl",
|
|
180
|
+
"match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=\\()"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"name": "support.function.builtin.cssl",
|
|
184
|
+
"match": "\\b(printl|print|println|len|type|toInt|toFloat|toString|toBool|range|input|exit|sleep|OpenFind|parameter\\.get|parameter\\.return)\\b"
|
|
185
|
+
}
|
|
186
|
+
]
|
|
187
|
+
},
|
|
188
|
+
"operators": {
|
|
189
|
+
"patterns": [
|
|
190
|
+
{
|
|
191
|
+
"name": "keyword.operator.comparison.cssl",
|
|
192
|
+
"match": "(==|!=|<=|>=|<|>)"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"name": "keyword.operator.arithmetic.cssl",
|
|
196
|
+
"match": "(\\+\\+|--|\\+=|-=|\\+|-|\\*|/|%)"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"name": "keyword.operator.logical.cssl",
|
|
200
|
+
"match": "(&&|\\|\\||!)"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"name": "keyword.operator.assignment.cssl",
|
|
204
|
+
"match": "="
|
|
205
|
+
}
|
|
206
|
+
]
|
|
207
|
+
},
|
|
208
|
+
"constants": {
|
|
209
|
+
"patterns": [
|
|
210
|
+
{
|
|
211
|
+
"name": "constant.language.boolean.cssl",
|
|
212
|
+
"match": "\\b(true|false|True|False)\\b"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"name": "constant.language.null.cssl",
|
|
216
|
+
"match": "\\b(null|None)\\b"
|
|
217
|
+
}
|
|
218
|
+
]
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
includecpp/__init__.py,sha256=
|
|
1
|
+
includecpp/__init__.py,sha256=Lg4ApbFSBpQVYm5SgU_irWBxdxpWkOJOmWYy9xG_wiQ,1672
|
|
2
2
|
includecpp/__init__.pyi,sha256=c4gZW7_XQXcp6FBcTi5W7zXTmCtbgQhlC4cyeVqtRRM,7253
|
|
3
3
|
includecpp/__main__.py,sha256=d6QK0PkvUe1ENofpmHRAg3bwNbZr8PiRscfI3-WRfVg,72
|
|
4
4
|
includecpp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
includecpp/cli/__init__.py,sha256=Yda-4a5QJb_tKu35YQNfc5lu-LewTsM5abqNNkzS47M,113
|
|
6
|
-
includecpp/cli/commands.py,sha256=
|
|
6
|
+
includecpp/cli/commands.py,sha256=RsG1ixzxSnnHHb1a42x_4hBapV1i360AIK9swQVZBRQ,324721
|
|
7
7
|
includecpp/cli/config_parser.py,sha256=KveeYUg2TA9sC5hKVzYYfgdNm2WfLG5y7_yxgBWn9yM,4886
|
|
8
8
|
includecpp/core/__init__.py,sha256=L1bT6oikTjdto-6Px7DpjePtM07ymo3Bnov1saZzsGg,390
|
|
9
9
|
includecpp/core/ai_integration.py,sha256=PW6yFDqdXjfchpfKTKg59AOLhLry9kqJEGf_65BztrY,87603
|
|
@@ -11,7 +11,7 @@ includecpp/core/build_manager.py,sha256=uLuYsuiC6OsOGaU5wAJfl4M3IbdnIDgogfMd8VsV
|
|
|
11
11
|
includecpp/core/cpp_api.py,sha256=8y_B1L18rhSBZln654xPPzqO2PdvAlLpJrfEjzl7Wnc,14039
|
|
12
12
|
includecpp/core/cpp_api.pyi,sha256=IEiaKqaPItnn6rjL7aK32D3o9FYmRYCgCZbqiQNUwdc,3496
|
|
13
13
|
includecpp/core/cppy_converter.py,sha256=b7yqu-aoa0wShNY0GvQT67TnNhYya4GyYmG7oDdqDV4,156686
|
|
14
|
-
includecpp/core/cssl_bridge.py,sha256=
|
|
14
|
+
includecpp/core/cssl_bridge.py,sha256=ZrFXkJmu0ikZu0CeNuxjKyaarzpb1O6Ph3ynf8ZomTE,24396
|
|
15
15
|
includecpp/core/cssl_bridge.pyi,sha256=Q4zjc2Kf2wPJPnfgHS-koPEon3Kty6o3mCvp9E5Q8tE,7635
|
|
16
16
|
includecpp/core/error_catalog.py,sha256=VS3N-P0yEbiHimsDPtcaYfrUb7mXQ-7pqw18PtSngaU,33869
|
|
17
17
|
includecpp/core/error_formatter.py,sha256=7-MzRIT8cM4uODxy0IZ9pu7pqR4Pq2I8Si0QQZHjmVc,39239
|
|
@@ -25,7 +25,7 @@ includecpp/core/cssl/cssl_builtins.py,sha256=WJtSWPsNNOSYtXBHK0h4ImXLrqId8ElfykQ
|
|
|
25
25
|
includecpp/core/cssl/cssl_events.py,sha256=nupIcXW_Vjdud7zCU6hdwkQRQ0MujlPM7Tk2u7eDAiY,21013
|
|
26
26
|
includecpp/core/cssl/cssl_modules.py,sha256=cUg0-zdymMnWWTsA_BUrW5dx4R04dHpKcUhm-Wfiwwo,103006
|
|
27
27
|
includecpp/core/cssl/cssl_parser.py,sha256=TxkqYHSGoY8ddHupD7qfaBgwKTCofhpmApzN-rWFCnY,91644
|
|
28
|
-
includecpp/core/cssl/cssl_runtime.py,sha256=
|
|
28
|
+
includecpp/core/cssl/cssl_runtime.py,sha256=g_R5BPWlqYgkk8wIEjawKr-_W7S_wdXAtkzrgJ-7yxs,97317
|
|
29
29
|
includecpp/core/cssl/cssl_syntax.py,sha256=vgI-dgj6gs9cOHwNRff6JbwZZYW_fYutnwCkznlgZiE,17006
|
|
30
30
|
includecpp/core/cssl/cssl_types.py,sha256=JaBhVFcByaC-Thdkd0J9IMkUzLkxriBWx1XfwPr6knM,30561
|
|
31
31
|
includecpp/generator/__init__.py,sha256=Rsy41bwimaEloD3gDRR_znPfIJzIsCFuWZgCTJBLJlc,62
|
|
@@ -34,9 +34,14 @@ includecpp/generator/parser.h,sha256=EDm0b-pEesIIIQQ2PvH5h2qwlqJU9BH8SiMV7MWbsTo
|
|
|
34
34
|
includecpp/generator/type_resolver.cpp,sha256=MmFK_4HXd1wqxALDiDyXVuU397SXoQL_o5zb_8N8Hzs,12346
|
|
35
35
|
includecpp/generator/type_resolver.h,sha256=ZsaxQqcCcKJJApYn7KOp2dLlQ1VFVG_oZDjaK5LhBSg,2590
|
|
36
36
|
includecpp/templates/cpp.proj.template,sha256=Iy-L8I4Cl3tIgBMx1Qp5h6gURvkqOAqyodVHuDJ0Luw,359
|
|
37
|
-
includecpp
|
|
38
|
-
includecpp
|
|
39
|
-
includecpp-
|
|
40
|
-
includecpp
|
|
41
|
-
includecpp
|
|
42
|
-
includecpp-3.
|
|
37
|
+
includecpp/vscode/__init__.py,sha256=yLKw-_7MTX1Rx3jLk5JjharJQfFXbwtZVE7YqHpM7yg,39
|
|
38
|
+
includecpp/vscode/cssl/__init__.py,sha256=rQJAx5X05v-mAwqX1Qb-rbZO219iR73MziFNRUCNUIo,31
|
|
39
|
+
includecpp/vscode/cssl/language-configuration.json,sha256=vBZSVBpV0UFlTO4d0aQrhTpR4lHje0Tb2n889k9W_Uc,986
|
|
40
|
+
includecpp/vscode/cssl/package.json,sha256=t_xEMMew3ohtxv9riyPdGo_T6TMJi-REJ-GDS_GYbCk,872
|
|
41
|
+
includecpp/vscode/cssl/syntaxes/cssl.tmLanguage.json,sha256=lvg2EHN8If1Hw0RY_EqatLupclQmhq3oZlnBA0Zi-54,8023
|
|
42
|
+
includecpp-3.5.0.dist-info/licenses/LICENSE,sha256=fWCsGGsiWZir0UzDd20Hh-3wtRyk1zqUntvtVuAWhvc,1093
|
|
43
|
+
includecpp-3.5.0.dist-info/METADATA,sha256=5rCFLg7vB9EsiDxQdmIJaaTHm2T1rwOP_hZn2hNwyfI,32122
|
|
44
|
+
includecpp-3.5.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
45
|
+
includecpp-3.5.0.dist-info/entry_points.txt,sha256=6A5Mif9gi0139Bf03W5plAb3wnAgbNaEVe1HJoGE-2o,59
|
|
46
|
+
includecpp-3.5.0.dist-info/top_level.txt,sha256=RFUaR1KG-M6mCYwP6w4ydP5Cgc8yNbP78jxGAvyjMa8,11
|
|
47
|
+
includecpp-3.5.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|