novac 2.1.1 → 2.2.0
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.
- package/LICENSE +1 -1
- package/README.md +0 -0
- package/demo.nv +0 -0
- package/demo_builtins.nv +0 -0
- package/demo_http.nv +0 -0
- package/examples/bf.nv +69 -0
- package/examples/math.nv +21 -0
- package/kits/birdAPI/kitdef.js +954 -0
- package/kits/kitRNG/kitdef.js +740 -0
- package/kits/kitSSH/kitdef.js +1272 -0
- package/kits/kitadb/kitdef.js +606 -0
- package/kits/kitai/kitdef.js +2185 -0
- package/kits/kitcanvas/kitdef.js +914 -0
- package/kits/kitclippy/kitdef.js +925 -0
- package/kits/kitgps/kitdef.js +1862 -0
- package/kits/kitlibproc/kitdef.js +3 -2
- package/kits/kitmorse/kitdef.js +229 -0
- package/kits/kitmpatch/kitdef.js +906 -0
- package/kits/kitnet/kitdef.js +1401 -0
- package/kits/kitproto/kitdef.js +613 -0
- package/kits/kitqr/kitdef.js +637 -0
- package/kits/kitrequire/kitdef.js +1599 -0
- package/kits/libtea/kitdef.js +2691 -0
- package/kits/libterm/kitdef.js +2 -0
- package/novac/LICENSE +21 -0
- package/novac/README.md +1823 -0
- package/novac/bin/novac +950 -0
- package/novac/bin/nvc +522 -0
- package/novac/bin/nvml +542 -0
- package/novac/demo.nv +245 -0
- package/novac/demo_builtins.nv +209 -0
- package/novac/demo_http.nv +62 -0
- package/novac/examples/bf.nv +69 -0
- package/novac/examples/math.nv +21 -0
- package/novac/kits/kitai/kitdef.js +2185 -0
- package/novac/kits/kitansi/kitdef.js +1402 -0
- package/novac/kits/kitformat/kitdef.js +1485 -0
- package/novac/kits/kitgps/kitdef.js +1862 -0
- package/novac/kits/kitlibfs/kitdef.js +231 -0
- package/{examples/example-project/nova_modules → novac/kits}/kitlibproc/kitdef.js +3 -2
- package/novac/kits/kitmatrix/ex.js +19 -0
- package/novac/kits/kitmatrix/kitdef.js +960 -0
- package/novac/kits/kitmpatch/kitdef.js +906 -0
- package/novac/kits/kitnovacweb/README.md +1572 -0
- package/novac/kits/kitnovacweb/demo.nv +12 -0
- package/novac/kits/kitnovacweb/demo.nvml +71 -0
- package/novac/kits/kitnovacweb/index.nova +12 -0
- package/novac/kits/kitnovacweb/kitdef.js +692 -0
- package/novac/kits/kitnovacweb/nova.kit.json +8 -0
- package/novac/kits/kitnovacweb/nvml/executor.js +739 -0
- package/novac/kits/kitnovacweb/nvml/index.js +67 -0
- package/novac/kits/kitnovacweb/nvml/lexer.js +263 -0
- package/novac/kits/kitnovacweb/nvml/parser.js +508 -0
- package/novac/kits/kitnovacweb/nvml/renderer.js +924 -0
- package/novac/kits/kitparse/kitdef.js +1688 -0
- package/novac/kits/kitregex++/kitdef.js +1353 -0
- package/novac/kits/kitrequire/kitdef.js +1599 -0
- package/novac/kits/kitx11/kitdef.js +1 -0
- package/novac/kits/kitx11/kitx11.js +2472 -0
- package/novac/kits/kitx11/kitx11_conn.js +948 -0
- package/novac/kits/kitx11/kitx11_worker.js +121 -0
- package/novac/kits/libterm/ex.js +285 -0
- package/novac/kits/libterm/kitdef.js +1927 -0
- package/novac/node_modules/chalk/license +9 -0
- package/novac/node_modules/chalk/package.json +83 -0
- package/novac/node_modules/chalk/readme.md +297 -0
- package/novac/node_modules/chalk/source/index.d.ts +325 -0
- package/novac/node_modules/chalk/source/index.js +225 -0
- package/novac/node_modules/chalk/source/utilities.js +33 -0
- package/novac/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
- package/novac/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
- package/novac/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
- package/novac/node_modules/chalk/source/vendor/supports-color/browser.js +34 -0
- package/novac/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
- package/novac/node_modules/chalk/source/vendor/supports-color/index.js +190 -0
- package/novac/node_modules/commander/LICENSE +22 -0
- package/novac/node_modules/commander/Readme.md +1176 -0
- package/novac/node_modules/commander/esm.mjs +16 -0
- package/novac/node_modules/commander/index.js +24 -0
- package/novac/node_modules/commander/lib/argument.js +150 -0
- package/novac/node_modules/commander/lib/command.js +2777 -0
- package/novac/node_modules/commander/lib/error.js +39 -0
- package/novac/node_modules/commander/lib/help.js +747 -0
- package/novac/node_modules/commander/lib/option.js +380 -0
- package/novac/node_modules/commander/lib/suggestSimilar.js +101 -0
- package/novac/node_modules/commander/package-support.json +19 -0
- package/novac/node_modules/commander/package.json +82 -0
- package/novac/node_modules/commander/typings/esm.d.mts +3 -0
- package/novac/node_modules/commander/typings/index.d.ts +1113 -0
- package/novac/node_modules/node-addon-api/LICENSE.md +9 -0
- package/novac/node_modules/node-addon-api/README.md +95 -0
- package/novac/node_modules/node-addon-api/common.gypi +21 -0
- package/novac/node_modules/node-addon-api/except.gypi +25 -0
- package/novac/node_modules/node-addon-api/index.js +14 -0
- package/novac/node_modules/node-addon-api/napi-inl.deprecated.h +186 -0
- package/novac/node_modules/node-addon-api/napi-inl.h +7165 -0
- package/novac/node_modules/node-addon-api/napi.h +3364 -0
- package/novac/node_modules/node-addon-api/node_addon_api.gyp +42 -0
- package/novac/node_modules/node-addon-api/node_api.gyp +9 -0
- package/novac/node_modules/node-addon-api/noexcept.gypi +26 -0
- package/novac/node_modules/node-addon-api/package-support.json +21 -0
- package/novac/node_modules/node-addon-api/package.json +480 -0
- package/novac/node_modules/node-addon-api/tools/README.md +73 -0
- package/novac/node_modules/node-addon-api/tools/check-napi.js +99 -0
- package/novac/node_modules/node-addon-api/tools/clang-format.js +71 -0
- package/novac/node_modules/node-addon-api/tools/conversion.js +301 -0
- package/novac/node_modules/serialize-javascript/LICENSE +27 -0
- package/novac/node_modules/serialize-javascript/README.md +149 -0
- package/novac/node_modules/serialize-javascript/index.js +297 -0
- package/novac/node_modules/serialize-javascript/package.json +33 -0
- package/novac/package.json +27 -0
- package/novac/scripts/update-bin.js +24 -0
- package/novac/src/core/bstd.js +1035 -0
- package/novac/src/core/config.js +155 -0
- package/novac/src/core/describe.js +187 -0
- package/novac/src/core/emitter.js +499 -0
- package/novac/src/core/error.js +86 -0
- package/novac/src/core/executor.js +5606 -0
- package/novac/src/core/formatter.js +686 -0
- package/novac/src/core/lexer.js +1026 -0
- package/novac/src/core/nova_builtins.js +717 -0
- package/novac/src/core/nova_thread_worker.js +166 -0
- package/novac/src/core/parser.js +2181 -0
- package/novac/src/core/types.js +112 -0
- package/novac/src/index.js +28 -0
- package/novac/src/runtime/stdlib.js +244 -0
- package/package.json +3 -2
- package/scripts/update-bin.js +0 -0
- package/src/core/bstd.js +835 -361
- package/src/core/executor.js +427 -246
- package/src/core/lexer.js +19 -2
- package/src/core/parser.js +13 -0
- package/src/index.js +0 -0
- package/examples/example-project/README.md +0 -3
- package/examples/example-project/src/main.nova +0 -3
- package/src/core/environment.js +0 -0
- /package/{kits → novac/kits}/libtea/tf.js +0 -0
- /package/{examples/example-project/bin/example-project.nv → novac/node_modules/node-addon-api/nothing.c} +0 -0
package/src/core/lexer.js
CHANGED
|
@@ -433,7 +433,7 @@ const KEYWORDS = new Set([
|
|
|
433
433
|
'classic',
|
|
434
434
|
// misc
|
|
435
435
|
'import', 'import_builtin', 'from', 'export', 'default', 'namespace',
|
|
436
|
-
'guard','when','with','loop','wait','run',
|
|
436
|
+
'guard','when','with','loop','wait','run', 'nat',
|
|
437
437
|
// http / server
|
|
438
438
|
'server', 'fetch',
|
|
439
439
|
'post', 'put', 'delete', 'patch', 'head', 'options',
|
|
@@ -569,7 +569,7 @@ const OPERATORS = new Map([
|
|
|
569
569
|
['index', { precedence: 14 }],
|
|
570
570
|
]);
|
|
571
571
|
|
|
572
|
-
const PUNCTUATION = new Set(['(',')','{','}','[',']',',','.',':', ';','?','@','#']);
|
|
572
|
+
const PUNCTUATION = new Set(['(',')','{','}','[',']',',','.',':', ';','?','@','#', '\\']);
|
|
573
573
|
// Note: '...' is already in OPERATORS; '::' as two-char operator below
|
|
574
574
|
|
|
575
575
|
class Lexer {
|
|
@@ -706,6 +706,10 @@ class Lexer {
|
|
|
706
706
|
if (ident === 'f' && (this.peek() === '"' || this.peek() === "'")) {
|
|
707
707
|
this.fstring(this.advance()); continue;
|
|
708
708
|
}
|
|
709
|
+
// raw string prefix
|
|
710
|
+
if (ident === 'r' && (this.peek() === '"' || this.peek() === "'")) {
|
|
711
|
+
this.rstring(this.advance()); continue;
|
|
712
|
+
}
|
|
709
713
|
// URL literal: http(s)://, ftp://, ws(s)://, content://, localhost(:port)?
|
|
710
714
|
const col2 = this.column - ident.length - 1;
|
|
711
715
|
const isScheme = ['http','https','ftp','ws','wss','content'].includes(ident);
|
|
@@ -909,6 +913,19 @@ class Lexer {
|
|
|
909
913
|
this.addToken('STRING', value, col);
|
|
910
914
|
}
|
|
911
915
|
|
|
916
|
+
rstring(quote) {
|
|
917
|
+
const col = this.column;
|
|
918
|
+
let value = '';
|
|
919
|
+
while (!this.isAtEnd() && this.peek() !== quote) {
|
|
920
|
+
const ch = this.advance();
|
|
921
|
+
if (ch === '\n') { this.line++; this.column = 1; value += ch; continue; }
|
|
922
|
+
value += ch;
|
|
923
|
+
}
|
|
924
|
+
if (this.isAtEnd()) throw this.error('Unterminated raw string literal');
|
|
925
|
+
this.advance(); // consume closing quote
|
|
926
|
+
this.addToken('STRING', value, col);
|
|
927
|
+
}
|
|
928
|
+
|
|
912
929
|
getDoubleString(q, next) {
|
|
913
930
|
const col = this.column;
|
|
914
931
|
let value = '';
|
package/src/core/parser.js
CHANGED
|
@@ -1033,6 +1033,13 @@ class Parser {
|
|
|
1033
1033
|
} else if (tok.type === 'PUNCTUATION' && tok.value === '{') {
|
|
1034
1034
|
left = this.objectLiteral();
|
|
1035
1035
|
|
|
1036
|
+
} else if (tok.type === 'PUNCTUATION' && tok.value === '\\') {
|
|
1037
|
+
this.advance();
|
|
1038
|
+
let pattern = this.expression();
|
|
1039
|
+
this.consume('PUNCTUATION', '\\', 'Expected \\ in regex literal');
|
|
1040
|
+
let flags = '';
|
|
1041
|
+
if (this.check('IDENTIFIER')) flags = this.advance().value;
|
|
1042
|
+
left = this.nd({ kind: 'regex_literal', pattern, flags });
|
|
1036
1043
|
} else if (tok.type === 'NUMBER' || tok.type === 'STRING' || tok.type === 'LITERAL') {
|
|
1037
1044
|
left = this.nd({ kind: 'value', value: this.advance().value });
|
|
1038
1045
|
|
|
@@ -1084,9 +1091,15 @@ class Parser {
|
|
|
1084
1091
|
} else if (tok.type === 'EOF') {
|
|
1085
1092
|
return this.nd({ kind: 'EOF' });
|
|
1086
1093
|
|
|
1094
|
+
} else if (tok.type === 'KEYWORD' && tok.value === 'nat') {
|
|
1095
|
+
this.advance();
|
|
1096
|
+
left = this.nd({ kind: 'native', value: this.expression() })
|
|
1087
1097
|
} else if (tok.type === 'KEYWORD' && tok.value === 'run') {
|
|
1088
1098
|
this.advance();
|
|
1089
1099
|
left = this.nd({ kind: 'run_expr', code: this.statement() })
|
|
1100
|
+
} else if (tok.value === '=') {
|
|
1101
|
+
this.advance();
|
|
1102
|
+
left = this.nd({ kind: 'ast', ast: this.statement() });
|
|
1090
1103
|
} else {
|
|
1091
1104
|
this.error("Unexpected token '" + tok.value + "'");
|
|
1092
1105
|
}
|
package/src/index.js
CHANGED
|
File without changes
|
package/src/core/environment.js
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|