@keymanapp/kmc-kmn 17.0.112-alpha → 17.0.113-alpha
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/build/src/compiler/compiler.d.ts +10 -0
- package/build/src/compiler/compiler.d.ts.map +1 -1
- package/build/src/compiler/compiler.js +74 -23
- package/build/src/compiler/compiler.js.map +1 -1
- package/build/src/import/kmcmplib/wasm-host.js +686 -5
- package/build/src/import/kmcmplib/wasm-host.js.map +1 -1
- package/build/src/import/kmcmplib/wasm-host.wasm +0 -0
- package/package.json +3 -3
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { CompilerCallbacks } from '@keymanapp/common-types';
|
|
2
|
+
export interface CompilerResultFile {
|
|
3
|
+
filename: string;
|
|
4
|
+
data: Uint8Array;
|
|
5
|
+
}
|
|
6
|
+
export interface CompilerResult {
|
|
7
|
+
kmx?: CompilerResultFile;
|
|
8
|
+
kvk?: CompilerResultFile;
|
|
9
|
+
js?: CompilerResultFile;
|
|
10
|
+
}
|
|
2
11
|
export interface CompilerOptions {
|
|
3
12
|
shouldAddCompilerVersion?: boolean;
|
|
4
13
|
saveDebug?: boolean;
|
|
@@ -38,6 +47,7 @@ export declare class KmnCompiler {
|
|
|
38
47
|
run(infile: string, outfile: string, options?: CompilerOptions): boolean;
|
|
39
48
|
private compilerMessageCallback;
|
|
40
49
|
private runCompiler;
|
|
50
|
+
private runKvkCompiler;
|
|
41
51
|
/**
|
|
42
52
|
*
|
|
43
53
|
* @param pattern UnicodeSet pattern such as `[a-z]`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAgD,MAAM,yBAAyB,CAAC;AAI1G,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,EAAE,CAAC,EAAE,kBAAkB,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACpC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAgBD;;GAEG;AACH,KAAK,OAAO,GAAG,MAAM,CAAC;AAEtB;;GAEG;AACH,cAAM,WAAW;IACf,MAAM,EAAE,GAAG,CAAC;IAEZ,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9K,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACxE,kBAAkB,CAAC,EAAE,CAAC,wBAAwB,EAAE,MAAM,KAAK,OAAO,CAAC;gBAEvD,UAAU,EAAE,GAAG;IAgB3B;;;OAGG;WACiB,IAAI,IAAK,OAAO,CAAC,WAAW,CAAC;CAGlD;AAED,qBAAa,WAAW;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,IAAI,EAAE,WAAW,CAAC;;IAOL,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAajE;;;OAGG;IACI,iBAAiB,IAAK,OAAO;IAY7B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO;IAyB/E,OAAO,CAAC,uBAAuB,CAG9B;IAED,OAAO,CAAC,WAAW;IAuCnB,OAAO,CAAC,cAAc;IA0BtB;;;;;OAKG;IACI,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAI,UAAU,GAAG,IAAI;CA+BhF;AA2BD;;GAEG;AACH,qBAAa,UAAU;IACF,OAAO,EAAE,MAAM;IAAS,MAAM,EAAE,MAAM,EAAE,EAAE;gBAA1C,OAAO,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAE,EAAE;IAE7D;;OAEG;IACH,IAAI,MAAM,IAAK,MAAM,CAEpB;IAED,QAAQ,IAAK,MAAM;CAGpB"}
|
|
@@ -1,28 +1,16 @@
|
|
|
1
1
|
/*
|
|
2
2
|
TODO: implement additional interfaces:
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
void* pfkBuffer,
|
|
7
|
-
bool ACompilerWarningsAsErrors,
|
|
8
|
-
bool AWarnDeprecatedCode,
|
|
9
|
-
kmcmp_CompilerMessageProc pMsgproc,
|
|
10
|
-
void* AmsgprocContext,
|
|
11
|
-
int Target
|
|
12
|
-
);
|
|
13
|
-
|
|
14
|
-
typedef bool (*kmcmp_ValidateJsonMessageProc)(int64_t offset, const char* szText, void* context);
|
|
15
|
-
|
|
16
|
-
extern "C" bool kmcmp_ValidateJsonFile(
|
|
17
|
-
std::fstream& f,
|
|
18
|
-
std::fstream& fd,
|
|
19
|
-
kmcmp_ValidateJsonMessageProc MessageProc,
|
|
20
|
-
void* context
|
|
21
|
-
);
|
|
4
|
+
typedef bool (*kmcmp_ValidateJsonMessageProc)();
|
|
5
|
+
extern "C" bool kmcmp_ValidateJsonFile();
|
|
22
6
|
*/
|
|
7
|
+
// TODO: rename wasm-host?
|
|
8
|
+
import { KvkFileWriter, KvksFileReader } from '@keymanapp/common-types';
|
|
23
9
|
import loadWasmHost from '../import/kmcmplib/wasm-host.js';
|
|
24
10
|
import { CompilerMessages, mapErrorFromKmcmplib } from './messages.js';
|
|
25
11
|
;
|
|
12
|
+
;
|
|
13
|
+
;
|
|
26
14
|
const baseOptions = {
|
|
27
15
|
shouldAddCompilerVersion: true,
|
|
28
16
|
saveDebug: true,
|
|
@@ -111,23 +99,86 @@ export class KmnCompiler {
|
|
|
111
99
|
// TODO: use callbacks for file access -- so kmc-kmn is entirely fs agnostic
|
|
112
100
|
let result = this.runCompiler(infile, outfile, options);
|
|
113
101
|
delete globalThis[this.callbackName];
|
|
114
|
-
|
|
102
|
+
//TODO: write the file out!
|
|
103
|
+
if (result) {
|
|
104
|
+
if (result.kmx) {
|
|
105
|
+
this.callbacks.fs.writeFileSync(result.kmx.filename, result.kmx.data);
|
|
106
|
+
}
|
|
107
|
+
if (result.kvk) {
|
|
108
|
+
this.callbacks.fs.writeFileSync(result.kvk.filename, result.kvk.data);
|
|
109
|
+
}
|
|
110
|
+
if (result.js) {
|
|
111
|
+
this.callbacks.fs.writeFileSync(result.js.filename, result.js.data);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return !!result;
|
|
115
115
|
}
|
|
116
116
|
compilerMessageCallback = (line, code, msg) => {
|
|
117
117
|
this.callbacks.reportMessage(mapErrorFromKmcmplib(line, code, msg));
|
|
118
118
|
return 1;
|
|
119
119
|
};
|
|
120
120
|
runCompiler(infile, outfile, options) {
|
|
121
|
+
let result = {};
|
|
122
|
+
let wasm_interface = new this.wasm.Module.CompilerInterface();
|
|
123
|
+
let wasm_result = null;
|
|
121
124
|
try {
|
|
122
|
-
|
|
123
|
-
|
|
125
|
+
wasm_interface.saveDebug = options.saveDebug;
|
|
126
|
+
wasm_interface.compilerWarningsAsErrors = options.compilerWarningsAsErrors;
|
|
127
|
+
wasm_interface.warnDeprecatedCode = options.warnDeprecatedCode;
|
|
128
|
+
wasm_interface.messageCallback = this.callbackName;
|
|
129
|
+
wasm_interface.loadFileCallback = this.callbackName; // TODO: this is wrong, needs to be a new callback; not yet used though
|
|
130
|
+
wasm_result = this.wasm.Module.kmcmp_compile(infile, wasm_interface);
|
|
131
|
+
if (!wasm_result.result) {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
if (wasm_result.kvksFilename) {
|
|
135
|
+
result.kvk = this.runKvkCompiler(wasm_result.kvksFilename, infile, outfile);
|
|
136
|
+
if (!result.kvk) {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
124
139
|
}
|
|
125
|
-
|
|
140
|
+
result.kmx = {
|
|
141
|
+
filename: outfile,
|
|
142
|
+
data: new Uint8Array(this.wasm.Module.HEAP8.buffer, wasm_result.kmx, wasm_result.kmxSize)
|
|
143
|
+
};
|
|
144
|
+
return result;
|
|
126
145
|
}
|
|
127
146
|
catch (e) {
|
|
128
147
|
this.callbacks.reportMessage(CompilerMessages.Fatal_UnexpectedException({ e: e }));
|
|
129
|
-
return
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
finally {
|
|
151
|
+
if (wasm_result) {
|
|
152
|
+
wasm_result.delete();
|
|
153
|
+
}
|
|
154
|
+
wasm_interface.delete();
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
runKvkCompiler(kvksFilename, kmnFilename, kmxFilename) {
|
|
158
|
+
// The compiler detected a .kvks file, which needs to be captured
|
|
159
|
+
let reader = new KvksFileReader();
|
|
160
|
+
kvksFilename = this.callbacks.resolveFilename(kmnFilename, kvksFilename);
|
|
161
|
+
let kvks = reader.read(this.callbacks.loadFile(kvksFilename));
|
|
162
|
+
try {
|
|
163
|
+
reader.validate(kvks, this.callbacks.loadSchema('kvks'));
|
|
164
|
+
}
|
|
165
|
+
catch (e) {
|
|
166
|
+
console.log(e);
|
|
167
|
+
// TODO: this.callbacks.reportMessage(CompilerMessages.Error_InvalidKvksFile({e}));
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
let errors = []; //TODO: KVKSParseError[];
|
|
171
|
+
let vk = reader.transform(kvks, errors);
|
|
172
|
+
if (!vk || errors.length) {
|
|
173
|
+
console.dir(errors);
|
|
174
|
+
// TODO: this.callbacks.reportMessage(CompilerMessages.Error_InvalidKvksFile({e}));
|
|
175
|
+
return null;
|
|
130
176
|
}
|
|
177
|
+
let writer = new KvkFileWriter();
|
|
178
|
+
return {
|
|
179
|
+
filename: this.callbacks.path.join(this.callbacks.path.dirname(kmxFilename), this.callbacks.path.basename(kvksFilename, '.kvks') + '.kvk'),
|
|
180
|
+
data: writer.write(vk)
|
|
181
|
+
};
|
|
131
182
|
}
|
|
132
183
|
/**
|
|
133
184
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"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"}
|