@primmel/primmel 1.2.0 → 1.2.1
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/dist/src/duplicate-id.d.ts +12 -0
- package/dist/src/duplicate-id.d.ts.map +1 -0
- package/dist/src/duplicate-id.js +38 -0
- package/dist/src/duplicate-id.js.map +1 -0
- package/dist/src/ser-des/config/approval.d.ts.map +1 -1
- package/dist/src/ser-des/config/approval.js +25 -33
- package/dist/src/ser-des/config/approval.js.map +1 -1
- package/dist/src/ser-des/config/calculation.js +11 -11
- package/dist/src/ser-des/config/calculation.js.map +1 -1
- package/dist/src/ser-des/config/data.d.ts.map +1 -1
- package/dist/src/ser-des/config/data.js +63 -118
- package/dist/src/ser-des/config/data.js.map +1 -1
- package/dist/src/ser-des/config/event.js +2 -2
- package/dist/src/ser-des/config/event.js.map +1 -1
- package/dist/src/ser-des/config/field-parser.js +12 -12
- package/dist/src/ser-des/config/field-parser.js.map +1 -1
- package/dist/src/ser-des/config/figure.js +2 -2
- package/dist/src/ser-des/config/figure.js.map +1 -1
- package/dist/src/ser-des/config/flow.d.ts.map +1 -1
- package/dist/src/ser-des/config/flow.js +20 -10
- package/dist/src/ser-des/config/flow.js.map +1 -1
- package/dist/src/ser-des/config/form.js +14 -14
- package/dist/src/ser-des/config/form.js.map +1 -1
- package/dist/src/ser-des/config/gateway.d.ts.map +1 -1
- package/dist/src/ser-des/config/gateway.js +9 -17
- package/dist/src/ser-des/config/gateway.js.map +1 -1
- package/dist/src/ser-des/config/index.d.ts +21 -1
- package/dist/src/ser-des/config/index.d.ts.map +1 -1
- package/dist/src/ser-des/config/index.js +240 -221
- package/dist/src/ser-des/config/index.js.map +1 -1
- package/dist/src/ser-des/config/link.js +2 -2
- package/dist/src/ser-des/config/link.js.map +1 -1
- package/dist/src/ser-des/config/mapProfile.d.ts.map +1 -1
- package/dist/src/ser-des/config/mapProfile.js +20 -29
- package/dist/src/ser-des/config/mapProfile.js.map +1 -1
- package/dist/src/ser-des/config/metadata.js +6 -6
- package/dist/src/ser-des/config/metadata.js.map +1 -1
- package/dist/src/ser-des/config/note.d.ts.map +1 -1
- package/dist/src/ser-des/config/note.js +18 -26
- package/dist/src/ser-des/config/note.js.map +1 -1
- package/dist/src/ser-des/config/process.d.ts.map +1 -1
- package/dist/src/ser-des/config/process.js +32 -40
- package/dist/src/ser-des/config/process.js.map +1 -1
- package/dist/src/ser-des/config/provision.d.ts.map +1 -1
- package/dist/src/ser-des/config/provision.js +18 -26
- package/dist/src/ser-des/config/provision.js.map +1 -1
- package/dist/src/ser-des/config/reference.js +2 -2
- package/dist/src/ser-des/config/reference.js.map +1 -1
- package/dist/src/ser-des/config/role.d.ts.map +1 -1
- package/dist/src/ser-des/config/role.js +7 -13
- package/dist/src/ser-des/config/role.js.map +1 -1
- package/dist/src/ser-des/config/stateMachine.js +12 -12
- package/dist/src/ser-des/config/stateMachine.js.map +1 -1
- package/dist/src/ser-des/config/subform.js +8 -8
- package/dist/src/ser-des/config/subform.js.map +1 -1
- package/dist/src/ser-des/config/symbol.d.ts.map +1 -1
- package/dist/src/ser-des/config/symbol.js +30 -38
- package/dist/src/ser-des/config/symbol.js.map +1 -1
- package/dist/src/ser-des/config/table.js +5 -5
- package/dist/src/ser-des/config/table.js.map +1 -1
- package/dist/src/ser-des/config/term.d.ts.map +1 -1
- package/dist/src/ser-des/config/term.js +22 -36
- package/dist/src/ser-des/config/term.js.map +1 -1
- package/dist/src/ser-des/config/viewProfile.d.ts.map +1 -1
- package/dist/src/ser-des/config/viewProfile.js +15 -23
- package/dist/src/ser-des/config/viewProfile.js.map +1 -1
- package/dist/src/ser-des/includes.d.ts +4 -0
- package/dist/src/ser-des/includes.d.ts.map +1 -1
- package/dist/src/ser-des/includes.js +21 -2
- package/dist/src/ser-des/includes.js.map +1 -1
- package/dist/src/ser-des/parse-block.d.ts +48 -0
- package/dist/src/ser-des/parse-block.d.ts.map +1 -0
- package/dist/src/ser-des/parse-block.js +108 -0
- package/dist/src/ser-des/parse-block.js.map +1 -0
- package/dist/src/ser-des/parse.d.ts +3 -2
- package/dist/src/ser-des/parse.d.ts.map +1 -1
- package/dist/src/ser-des/parse.js +13 -31
- package/dist/src/ser-des/parse.js.map +1 -1
- package/dist/src/ser-des/resolve.d.ts +16 -3
- package/dist/src/ser-des/resolve.d.ts.map +1 -1
- package/dist/src/ser-des/resolve.js +41 -58
- package/dist/src/ser-des/resolve.js.map +1 -1
- package/dist/src/ser-des/tokenize.d.ts +3 -4
- package/dist/src/ser-des/tokenize.d.ts.map +1 -1
- package/dist/src/ser-des/tokenize.js +5 -65
- package/dist/src/ser-des/tokenize.js.map +1 -1
- package/dist/src/ser-des/types.d.ts +2 -2
- package/dist/src/ser-des/types.d.ts.map +1 -1
- package/dist/src/types/Standard.d.ts +2 -2
- package/dist/src/types/Standard.d.ts.map +1 -1
- package/dist/src/validate.d.ts +14 -5
- package/dist/src/validate.d.ts.map +1 -1
- package/dist/src/validate.js +110 -57
- package/dist/src/validate.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subform.js","sourceRoot":"","sources":["../../../../src/ser-des/config/subform.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"subform.js","sourceRoot":"","sources":["../../../../src/ser-des/config/subform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/symbol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"symbol.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/symbol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzD,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAc,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAYvE,eAAO,MAAM,WAAW,EAAE,MAoDzB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAY5D,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,CAyBrC,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.dumpSymbol = exports.resolveSymbol = exports.parseSymbol = void 0;
|
|
4
4
|
const tokenize_1 = require("../tokenize");
|
|
5
|
+
const parse_block_1 = require("../parse-block");
|
|
5
6
|
const resolve_1 = require("../resolve");
|
|
6
7
|
const VALID_SYMBOL_TYPES = [
|
|
7
8
|
'number',
|
|
@@ -24,46 +25,37 @@ const parseSymbol = function (id, data) {
|
|
|
24
25
|
ref: [],
|
|
25
26
|
},
|
|
26
27
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
else if (command === 'type') {
|
|
40
|
-
const v = t[i++];
|
|
41
|
-
if (!VALID_SYMBOL_TYPES.includes(v)) {
|
|
42
|
-
throw new Error(`Parsing error: symbol. ID ${id}: Unknown type ${v} (valid: ${VALID_SYMBOL_TYPES.join(', ')})`);
|
|
43
|
-
}
|
|
44
|
-
result.type = v;
|
|
45
|
-
}
|
|
46
|
-
else if (command === 'unit') {
|
|
47
|
-
result.unit = (0, tokenize_1.removePackage)(t[i++]);
|
|
48
|
-
}
|
|
49
|
-
else if (command === 'latex') {
|
|
50
|
-
result.latex = (0, tokenize_1.removePackage)(t[i++]);
|
|
51
|
-
}
|
|
52
|
-
else if (command === 'values') {
|
|
53
|
-
result.values = (0, tokenize_1.tokenizePackage)(t[i++]);
|
|
54
|
-
}
|
|
55
|
-
else if (command === 'reference') {
|
|
56
|
-
result._relations.ref = (0, tokenize_1.tokenizePackage)(t[i++]);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
i++; // forward-compatible: skip unknown keyword value
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
throw new Error(`Parsing error: symbol. ID ${id}: Expecting value for ${command}`);
|
|
28
|
+
(0, parse_block_1.forEachEntry)(data, (command, value) => {
|
|
29
|
+
if (command === 'name') {
|
|
30
|
+
result.name = (0, parse_block_1.unwrapped)(value);
|
|
31
|
+
}
|
|
32
|
+
else if (command === 'definition') {
|
|
33
|
+
result.definition = (0, parse_block_1.unwrapped)(value);
|
|
34
|
+
}
|
|
35
|
+
else if (command === 'type') {
|
|
36
|
+
const v = value();
|
|
37
|
+
if (!VALID_SYMBOL_TYPES.includes(v)) {
|
|
38
|
+
throw new Error(`Parsing error: symbol. ID ${id}: Unknown type ${v} (valid: ${VALID_SYMBOL_TYPES.join(', ')})`);
|
|
64
39
|
}
|
|
40
|
+
result.type = v;
|
|
65
41
|
}
|
|
66
|
-
|
|
42
|
+
else if (command === 'unit') {
|
|
43
|
+
result.unit = (0, parse_block_1.unwrapped)(value);
|
|
44
|
+
}
|
|
45
|
+
else if (command === 'latex') {
|
|
46
|
+
result.latex = (0, parse_block_1.unwrapped)(value);
|
|
47
|
+
}
|
|
48
|
+
else if (command === 'values') {
|
|
49
|
+
result.values = (0, tokenize_1.tokenizePackage)(value());
|
|
50
|
+
}
|
|
51
|
+
else if (command === 'reference') {
|
|
52
|
+
result._relations.ref = (0, tokenize_1.tokenizePackage)(value());
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
return true;
|
|
58
|
+
}, { construct: 'symbol', id });
|
|
67
59
|
return ctx => {
|
|
68
60
|
ctx.symbols[id] = result;
|
|
69
61
|
return ctx;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol.js","sourceRoot":"","sources":["../../../../src/ser-des/config/symbol.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"symbol.js","sourceRoot":"","sources":["../../../../src/ser-des/config/symbol.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,21 +18,21 @@ const parseTable = function (id, data) {
|
|
|
18
18
|
const command = t[i++];
|
|
19
19
|
if (i < t.length) {
|
|
20
20
|
if (command === 'title') {
|
|
21
|
-
result.title = (0, tokenize_1.
|
|
21
|
+
result.title = (0, tokenize_1.unwrapBlock)(t[i++]);
|
|
22
22
|
}
|
|
23
23
|
else if (command === 'columns') {
|
|
24
|
-
result.columns = (0, tokenize_1.
|
|
24
|
+
result.columns = (0, tokenize_1.unwrapBlock)(t[i++]);
|
|
25
25
|
}
|
|
26
26
|
else if (command === 'display') {
|
|
27
|
-
result.display = (0, tokenize_1.
|
|
27
|
+
result.display = (0, tokenize_1.unwrapBlock)(t[i++]);
|
|
28
28
|
}
|
|
29
29
|
else if (command === 'domain') {
|
|
30
30
|
// Domain block is captured as raw package string
|
|
31
|
-
result.domain = (0, tokenize_1.
|
|
31
|
+
result.domain = (0, tokenize_1.unwrapBlock)(t[i++]);
|
|
32
32
|
}
|
|
33
33
|
else if (command === 'data') {
|
|
34
34
|
// Data block contains CSV-like rows
|
|
35
|
-
const dataBlock = (0, tokenize_1.
|
|
35
|
+
const dataBlock = (0, tokenize_1.unwrapBlock)(t[i++]);
|
|
36
36
|
result.data = parseTableData(dataBlock);
|
|
37
37
|
}
|
|
38
38
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../src/ser-des/config/table.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../src/ser-des/config/table.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"term.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/term.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"term.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/term.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAC;AAEzC,eAAO,MAAM,SAAS,EAAE,MAmCvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,IAAI,CAoBjC,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.dumpTerm = exports.parseTerm = void 0;
|
|
4
4
|
const tokenize_1 = require("../tokenize");
|
|
5
|
+
const parse_block_1 = require("../parse-block");
|
|
5
6
|
const parseTerm = function (id, data) {
|
|
6
7
|
const result = {
|
|
7
8
|
id,
|
|
@@ -11,41 +12,26 @@ const parseTerm = function (id, data) {
|
|
|
11
12
|
referenceIds: [],
|
|
12
13
|
ref: [],
|
|
13
14
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
while (i < t.length) {
|
|
18
|
-
const command = t[i++];
|
|
19
|
-
if (i < t.length) {
|
|
20
|
-
if (command === 'label') {
|
|
21
|
-
result.label = (0, tokenize_1.removePackage)(t[i++]);
|
|
22
|
-
}
|
|
23
|
-
else if (command === 'definition') {
|
|
24
|
-
result.definition = (0, tokenize_1.removePackage)(t[i++]);
|
|
25
|
-
}
|
|
26
|
-
else if (command === 'symbol') {
|
|
27
|
-
// symbol reference is a bare ID (e.g., `symbol Emax`).
|
|
28
|
-
// Strip wrapping quotes if present (defensive — most models use bare IDs).
|
|
29
|
-
const raw = t[i++];
|
|
30
|
-
result.symbolId =
|
|
31
|
-
raw.length >= 2 &&
|
|
32
|
-
raw.charAt(0) === '"' &&
|
|
33
|
-
raw.charAt(raw.length - 1) === '"'
|
|
34
|
-
? raw.slice(1, -1)
|
|
35
|
-
: raw;
|
|
36
|
-
}
|
|
37
|
-
else if (command === 'reference') {
|
|
38
|
-
result.referenceIds = (0, tokenize_1.tokenizePackage)(t[i++]);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
i++; // forward-compatible: skip unknown keyword value
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
throw new Error(`Parsing error: term. ID ${id}: Expecting value for ${command}`);
|
|
46
|
-
}
|
|
15
|
+
(0, parse_block_1.forEachEntry)(data, (command, value) => {
|
|
16
|
+
if (command === 'label') {
|
|
17
|
+
result.label = (0, parse_block_1.unwrapped)(value);
|
|
47
18
|
}
|
|
48
|
-
|
|
19
|
+
else if (command === 'definition') {
|
|
20
|
+
result.definition = (0, parse_block_1.unwrapped)(value);
|
|
21
|
+
}
|
|
22
|
+
else if (command === 'symbol') {
|
|
23
|
+
// symbol reference may be a bare ID (e.g. `symbol Emax`) or a
|
|
24
|
+
// quoted string (`symbol "Emax"`). stripWrapping handles both.
|
|
25
|
+
result.symbolId = (0, tokenize_1.stripWrapping)(value());
|
|
26
|
+
}
|
|
27
|
+
else if (command === 'reference') {
|
|
28
|
+
result.referenceIds = (0, tokenize_1.tokenizePackage)(value());
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
}, { construct: 'term', id });
|
|
49
35
|
return ctx => {
|
|
50
36
|
ctx.terms[id] = result;
|
|
51
37
|
return ctx;
|
|
@@ -55,10 +41,10 @@ exports.parseTerm = parseTerm;
|
|
|
55
41
|
const dumpTerm = function (term) {
|
|
56
42
|
let out = 'term ' + term.id + ' {\n';
|
|
57
43
|
if (term.label) {
|
|
58
|
-
out += ' label "' + term.label + '"\n';
|
|
44
|
+
out += ' label "' + (0, tokenize_1.escapeString)(term.label) + '"\n';
|
|
59
45
|
}
|
|
60
46
|
if (term.definition) {
|
|
61
|
-
out += ' definition "' + term.definition + '"\n';
|
|
47
|
+
out += ' definition "' + (0, tokenize_1.escapeString)(term.definition) + '"\n';
|
|
62
48
|
}
|
|
63
49
|
if (term.symbolId) {
|
|
64
50
|
out += ' symbol ' + term.symbolId + '\n';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"term.js","sourceRoot":"","sources":["../../../../src/ser-des/config/term.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"term.js","sourceRoot":"","sources":["../../../../src/ser-des/config/term.ts"],"names":[],"mappings":";;;AACA,0CAA2E;AAC3E,gDAAyD;AAGlD,MAAM,SAAS,GAAW,UAAU,EAAE,EAAE,IAAI;IACjD,MAAM,MAAM,GAAS;QACnB,EAAE;QACF,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;QAChB,GAAG,EAAE,EAAE;KACR,CAAC;IAEF,IAAA,0BAAY,EACV,IAAI,EACJ,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACjB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,UAAU,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,8DAA8D;YAC9D,+DAA+D;YAC/D,MAAM,CAAC,QAAQ,GAAG,IAAA,wBAAa,EAAC,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YACnC,MAAM,CAAC,YAAY,GAAG,IAAA,0BAAe,EAAC,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAC1B,CAAC;IAEF,OAAO,GAAG,CAAC,EAAE;QACX,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,SAAS,aAmCpB;AAEK,MAAM,QAAQ,GAAiB,UAAU,IAAI;IAClD,IAAI,GAAG,GAAW,OAAO,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;IAC7C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,GAAG,IAAI,WAAW,GAAG,IAAA,uBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACxD,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,GAAG,IAAI,gBAAgB,GAAG,IAAA,uBAAY,EAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;IAClE,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,GAAG,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC5C,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,GAAG,IAAI,iBAAiB,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,GAAG,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,GAAG,IAAI,OAAO,CAAC;IACjB,CAAC;IACD,GAAG,IAAI,KAAK,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AApBW,QAAA,QAAQ,YAoBnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewProfile.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/viewProfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"viewProfile.d.ts","sourceRoot":"","sources":["../../../../src/ser-des/config/viewProfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AAEvD,eAAO,MAAM,gBAAgB,EAAE,MA6B9B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,WAAW,CAa/C,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.dumpViewProfile = exports.parseViewProfile = void 0;
|
|
4
4
|
const tokenize_1 = require("../tokenize");
|
|
5
|
+
const parse_block_1 = require("../parse-block");
|
|
5
6
|
const parseViewProfile = function (id, data) {
|
|
6
7
|
const result = {
|
|
7
8
|
id,
|
|
@@ -9,30 +10,21 @@ const parseViewProfile = function (id, data) {
|
|
|
9
10
|
roles: [],
|
|
10
11
|
visibleElements: [],
|
|
11
12
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
while (i < t.length) {
|
|
16
|
-
const command = t[i++];
|
|
17
|
-
if (i < t.length) {
|
|
18
|
-
if (command === 'description') {
|
|
19
|
-
result.description = (0, tokenize_1.removePackage)(t[i++]);
|
|
20
|
-
}
|
|
21
|
-
else if (command === 'roles') {
|
|
22
|
-
result.roles = (0, tokenize_1.tokenizePackage)(t[i++]);
|
|
23
|
-
}
|
|
24
|
-
else if (command === 'visible') {
|
|
25
|
-
result.visibleElements = (0, tokenize_1.tokenizePackage)(t[i++]);
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
i++; // forward-compatible: skip unknown keyword value
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
throw new Error(`Parsing error: view_profile. ID ${id}: Expecting value for ${command}`);
|
|
33
|
-
}
|
|
13
|
+
(0, parse_block_1.forEachEntry)(data, (command, value) => {
|
|
14
|
+
if (command === 'description') {
|
|
15
|
+
result.description = (0, parse_block_1.unwrapped)(value);
|
|
34
16
|
}
|
|
35
|
-
|
|
17
|
+
else if (command === 'roles') {
|
|
18
|
+
result.roles = (0, tokenize_1.tokenizePackage)(value());
|
|
19
|
+
}
|
|
20
|
+
else if (command === 'visible') {
|
|
21
|
+
result.visibleElements = (0, tokenize_1.tokenizePackage)(value());
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}, { construct: 'view_profile', id });
|
|
36
28
|
return ctx => {
|
|
37
29
|
ctx.viewProfiles[id] = result;
|
|
38
30
|
return ctx;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewProfile.js","sourceRoot":"","sources":["../../../../src/ser-des/config/viewProfile.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"viewProfile.js","sourceRoot":"","sources":["../../../../src/ser-des/config/viewProfile.ts"],"names":[],"mappings":";;;AACA,0CAA8C;AAC9C,gDAAyD;AAGlD,MAAM,gBAAgB,GAAW,UAAU,EAAE,EAAE,IAAI;IACxD,MAAM,MAAM,GAAgB;QAC1B,EAAE;QACF,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,EAAE;QACT,eAAe,EAAE,EAAE;KACpB,CAAC;IAEF,IAAA,0BAAY,EACV,IAAI,EACJ,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACjB,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;YAC9B,MAAM,CAAC,WAAW,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YAC/B,MAAM,CAAC,KAAK,GAAG,IAAA,0BAAe,EAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,eAAe,GAAG,IAAA,0BAAe,EAAC,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE,CAClC,CAAC;IAEF,OAAO,GAAG,CAAC,EAAE;QACX,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QAC9B,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,CAAC;AA7BW,QAAA,gBAAgB,oBA6B3B;AAEK,MAAM,eAAe,GAAwB,UAAU,EAAE;IAC9D,IAAI,GAAG,GAAG,eAAe,GAAG,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACnB,GAAG,IAAI,iBAAiB,GAAG,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;IACpD,CAAC;IACD,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,IAAI,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAChD,CAAC;IACD,IAAI,EAAE,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,GAAG,IAAI,YAAY,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC5D,CAAC;IACD,GAAG,IAAI,KAAK,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAbW,QAAA,eAAe,mBAa1B"}
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
* Include paths are resolved relative to the directory of the
|
|
8
8
|
* including file. Absolute paths are also supported.
|
|
9
9
|
*
|
|
10
|
+
* Comment-aware: lines starting (after optional whitespace) with `#`
|
|
11
|
+
* or `//` are skipped, so a comment like `// include "ignored.mmel"`
|
|
12
|
+
* is NOT expanded. This matches the tokenizer's comment handling.
|
|
13
|
+
*
|
|
10
14
|
* Cycles are detected and rejected.
|
|
11
15
|
*/
|
|
12
16
|
export declare function preprocessIncludes(filePath: string, _seen?: Set<string>): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"includes.d.ts","sourceRoot":"","sources":["../../../src/ser-des/includes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"includes.d.ts","sourceRoot":"","sources":["../../../src/ser-des/includes.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,GAAG,CAAC,MAAM,CAAa,GAC7B,MAAM,CA0CR"}
|
|
@@ -7,12 +7,17 @@
|
|
|
7
7
|
//
|
|
8
8
|
// Design: recursive, relative-path, cycle-detecting. Follows the
|
|
9
9
|
// same convention as C preprocessor #include and AsciiDoc include::.
|
|
10
|
+
//
|
|
11
|
+
// Comment-aware: `#` and `//` comments containing `include "foo"` are
|
|
12
|
+
// NOT expanded. The tokenizer's own comment-stripping logic is mirrored
|
|
13
|
+
// here so the two stages agree on what counts as content.
|
|
10
14
|
// ─────────────────────────────────────────────────────────────────────
|
|
11
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
16
|
exports.preprocessIncludes = preprocessIncludes;
|
|
13
17
|
const fs_1 = require("fs");
|
|
14
18
|
const path_1 = require("path");
|
|
15
19
|
const INCLUDE_RE = /^include\s+"([^"]+)"/gm;
|
|
20
|
+
const COMMENT_LINE_RE = /^[ \t]*(#|\/\/)/;
|
|
16
21
|
/**
|
|
17
22
|
* Preprocess include directives in a .mmel file.
|
|
18
23
|
*
|
|
@@ -22,6 +27,10 @@ const INCLUDE_RE = /^include\s+"([^"]+)"/gm;
|
|
|
22
27
|
* Include paths are resolved relative to the directory of the
|
|
23
28
|
* including file. Absolute paths are also supported.
|
|
24
29
|
*
|
|
30
|
+
* Comment-aware: lines starting (after optional whitespace) with `#`
|
|
31
|
+
* or `//` are skipped, so a comment like `// include "ignored.mmel"`
|
|
32
|
+
* is NOT expanded. This matches the tokenizer's comment handling.
|
|
33
|
+
*
|
|
25
34
|
* Cycles are detected and rejected.
|
|
26
35
|
*/
|
|
27
36
|
function preprocessIncludes(filePath, _seen = new Set()) {
|
|
@@ -38,8 +47,18 @@ function preprocessIncludes(filePath, _seen = new Set()) {
|
|
|
38
47
|
const content = (0, fs_1.readFileSync)(absPath, 'utf8');
|
|
39
48
|
const dir = (0, path_1.dirname)(absPath);
|
|
40
49
|
// Replace each include directive with the preprocessed content of
|
|
41
|
-
// the referenced file
|
|
42
|
-
|
|
50
|
+
// the referenced file. Skip comment lines so a `// include "..."` in
|
|
51
|
+
// a comment doesn't get falsely expanded.
|
|
52
|
+
return content.replace(INCLUDE_RE, (match, includePath) => {
|
|
53
|
+
// Look backward from the match start to the start of the line —
|
|
54
|
+
// if everything before the match on this line is whitespace
|
|
55
|
+
// followed by `#` or `//`, the match is inside a comment.
|
|
56
|
+
const matchEnd = INCLUDE_RE.lastIndex;
|
|
57
|
+
const lineStart = content.lastIndexOf('\n', matchEnd - match.length) + 1;
|
|
58
|
+
const prefix = content.slice(lineStart, matchEnd - match.length);
|
|
59
|
+
if (COMMENT_LINE_RE.test(prefix)) {
|
|
60
|
+
return match; // in a comment — leave untouched
|
|
61
|
+
}
|
|
43
62
|
const resolved = (0, path_1.isAbsolute)(includePath)
|
|
44
63
|
? includePath
|
|
45
64
|
: (0, path_1.resolve)(dir, includePath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"includes.js","sourceRoot":"","sources":["../../../src/ser-des/includes.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,wBAAwB;AACxB,EAAE;AACF,uEAAuE;AACvE,gEAAgE;AAChE,EAAE;AACF,iEAAiE;AACjE,qEAAqE;AACrE,wEAAwE;;
|
|
1
|
+
{"version":3,"file":"includes.js","sourceRoot":"","sources":["../../../src/ser-des/includes.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,wBAAwB;AACxB,EAAE;AACF,uEAAuE;AACvE,gEAAgE;AAChE,EAAE;AACF,iEAAiE;AACjE,qEAAqE;AACrE,EAAE;AACF,sEAAsE;AACtE,wEAAwE;AACxE,0DAA0D;AAC1D,wEAAwE;;AAuBxE,gDA6CC;AAlED,2BAA8C;AAC9C,+BAAoD;AAEpD,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAC5C,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AACH,SAAgB,kBAAkB,CAChC,QAAgB,EAChB,QAAqB,IAAI,GAAG,EAAE;IAE9B,MAAM,OAAO,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC;IAElC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,2BAA2B,OAAO,YAAY,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;aAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;aAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEnB,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,CAAC;IAE7B,kEAAkE;IAClE,qEAAqE;IACrE,0CAA0C;IAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,WAAmB,EAAE,EAAE;QAChE,gEAAgE;QAChE,4DAA4D;QAC5D,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC,CAAC,iCAAiC;QACjD,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,iBAAU,EAAC,WAAW,CAAC;YACtC,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,IAAA,cAAO,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAE9B,qCAAqC;QACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,CAAC;QAE3E,OAAO,kBAAkB,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export interface ParseEntryErrorContext {
|
|
2
|
+
/** Construct name for error messages, e.g. "process", "enum value". */
|
|
3
|
+
construct: string;
|
|
4
|
+
/** Owning ID for error messages (may be empty for anonymous blocks). */
|
|
5
|
+
id: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Walk the (keyword, value) pairs of a `{ ... }` block, calling the
|
|
9
|
+
* visitor for each. Returns silently for empty input.
|
|
10
|
+
*
|
|
11
|
+
* The visitor receives the keyword and a `value()` reader. Returning
|
|
12
|
+
* `true` claims the keyword (the visitor called `value()` itself);
|
|
13
|
+
* returning `false` lets the helper auto-skip the value token, which
|
|
14
|
+
* is how forward compatibility with newer revisions is preserved.
|
|
15
|
+
*
|
|
16
|
+
* Throws on a truncated block (keyword with no value).
|
|
17
|
+
*/
|
|
18
|
+
export declare function forEachEntry(data: string, visitor: (keyword: string, value: () => string) => boolean, errCtx: ParseEntryErrorContext): void;
|
|
19
|
+
/**
|
|
20
|
+
* Walk the `<name-spec> { <block> }` pairs of an attributes-style body,
|
|
21
|
+
* calling the visitor for each pair. Used by `class` bodies where each
|
|
22
|
+
* entry has the shape `id[: type][[cardinality]] { details }`.
|
|
23
|
+
*
|
|
24
|
+
* Unlike `forEachEntry`, the name spec can span multiple whitespace-
|
|
25
|
+
* separated tokens (e.g. `attr1: string [0..1]`). Consecutive non-brace
|
|
26
|
+
* tokens are accumulated into one name spec until the next `{ ... }`
|
|
27
|
+
* block, which becomes the pair's block.
|
|
28
|
+
*
|
|
29
|
+
* The visitor receives the raw name spec (e.g. `"attr1: string [0..1]"`)
|
|
30
|
+
* and the inner content of the brace block. Empty input is a no-op.
|
|
31
|
+
*
|
|
32
|
+
* Throws on a truncated body (name with no block).
|
|
33
|
+
*/
|
|
34
|
+
export declare function forEachAttribute(data: string, visitor: (nameSpec: string, block: string) => void, errCtx: ParseEntryErrorContext): void;
|
|
35
|
+
/**
|
|
36
|
+
* Convenience: read the next value with surrounding quotes/braces
|
|
37
|
+
* stripped. Pairs with `forEachEntry` for the common case where a
|
|
38
|
+
* visitor wants the unwrapped string form.
|
|
39
|
+
*
|
|
40
|
+
* forEachEntry(data, (kw, value) => {
|
|
41
|
+
* if (kw === 'name') result.name = unwrapped(value);
|
|
42
|
+
* else if (kw === 'modality') result.modality = value();
|
|
43
|
+
* else return false;
|
|
44
|
+
* return true;
|
|
45
|
+
* }, { construct: 'process', id });
|
|
46
|
+
*/
|
|
47
|
+
export declare function unwrapped(value: () => string): string;
|
|
48
|
+
//# sourceMappingURL=parse-block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-block.d.ts","sourceRoot":"","sources":["../../../src/ser-des/parse-block.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,MAAM,KAAK,OAAO,EAC1D,MAAM,EAAE,sBAAsB,GAC7B,IAAI,CAkBN;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EAClD,MAAM,EAAE,sBAAsB,GAC7B,IAAI,CA0BN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,MAAM,GAAG,MAAM,CAErD"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
3
|
+
// Shared parse-loop helpers.
|
|
4
|
+
//
|
|
5
|
+
// Every keyword-with-block parser follows the same shape:
|
|
6
|
+
// - tokenize the block
|
|
7
|
+
// - walk tokens pairwise (keyword, value)
|
|
8
|
+
// - dispatch on keyword
|
|
9
|
+
// - throw if a value is missing
|
|
10
|
+
// - skip unknown keywords for forward compatibility
|
|
11
|
+
//
|
|
12
|
+
// `forEachEntry` concentrates that boilerplate. Each parser supplies a
|
|
13
|
+
// visitor; the visitor claims a keyword by reading its value via the
|
|
14
|
+
// passed `value()` callback. Unclaimed keywords auto-skip their value.
|
|
15
|
+
//
|
|
16
|
+
// `forEachAttribute` handles the slightly different shape used by
|
|
17
|
+
// `class` bodies: a flat sequence of `<name-and-type-spec> { <block> }`
|
|
18
|
+
// pairs, where the name part can include `: type`, `[cardinality]`,
|
|
19
|
+
// etc. The visitor receives the un-tokenized name spec and the brace
|
|
20
|
+
// block as a single string.
|
|
21
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.forEachEntry = forEachEntry;
|
|
24
|
+
exports.forEachAttribute = forEachAttribute;
|
|
25
|
+
exports.unwrapped = unwrapped;
|
|
26
|
+
const tokenize_1 = require("./tokenize");
|
|
27
|
+
/**
|
|
28
|
+
* Walk the (keyword, value) pairs of a `{ ... }` block, calling the
|
|
29
|
+
* visitor for each. Returns silently for empty input.
|
|
30
|
+
*
|
|
31
|
+
* The visitor receives the keyword and a `value()` reader. Returning
|
|
32
|
+
* `true` claims the keyword (the visitor called `value()` itself);
|
|
33
|
+
* returning `false` lets the helper auto-skip the value token, which
|
|
34
|
+
* is how forward compatibility with newer revisions is preserved.
|
|
35
|
+
*
|
|
36
|
+
* Throws on a truncated block (keyword with no value).
|
|
37
|
+
*/
|
|
38
|
+
function forEachEntry(data, visitor, errCtx) {
|
|
39
|
+
if (data === '') {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const t = (0, tokenize_1.tokenizePackage)(data);
|
|
43
|
+
let i = 0;
|
|
44
|
+
while (i < t.length) {
|
|
45
|
+
const keyword = t[i++];
|
|
46
|
+
if (i >= t.length) {
|
|
47
|
+
throw new Error(`Parsing error: ${errCtx.construct}. ID ${errCtx.id}: Expecting value for ${keyword}`);
|
|
48
|
+
}
|
|
49
|
+
const claimed = visitor(keyword, () => t[i++]);
|
|
50
|
+
if (!claimed) {
|
|
51
|
+
i++; // forward-compat: skip unknown keyword value
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Walk the `<name-spec> { <block> }` pairs of an attributes-style body,
|
|
57
|
+
* calling the visitor for each pair. Used by `class` bodies where each
|
|
58
|
+
* entry has the shape `id[: type][[cardinality]] { details }`.
|
|
59
|
+
*
|
|
60
|
+
* Unlike `forEachEntry`, the name spec can span multiple whitespace-
|
|
61
|
+
* separated tokens (e.g. `attr1: string [0..1]`). Consecutive non-brace
|
|
62
|
+
* tokens are accumulated into one name spec until the next `{ ... }`
|
|
63
|
+
* block, which becomes the pair's block.
|
|
64
|
+
*
|
|
65
|
+
* The visitor receives the raw name spec (e.g. `"attr1: string [0..1]"`)
|
|
66
|
+
* and the inner content of the brace block. Empty input is a no-op.
|
|
67
|
+
*
|
|
68
|
+
* Throws on a truncated body (name with no block).
|
|
69
|
+
*/
|
|
70
|
+
function forEachAttribute(data, visitor, errCtx) {
|
|
71
|
+
if (data === '') {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const t = (0, tokenize_1.tokenizePackage)(data);
|
|
75
|
+
let i = 0;
|
|
76
|
+
while (i < t.length) {
|
|
77
|
+
// Accumulate name-spec tokens until we hit the brace block.
|
|
78
|
+
const nameParts = [];
|
|
79
|
+
while (i < t.length && t[i].charAt(0) !== '{') {
|
|
80
|
+
nameParts.push(t[i++]);
|
|
81
|
+
}
|
|
82
|
+
if (nameParts.length === 0) {
|
|
83
|
+
// Leading brace with no name — malformed.
|
|
84
|
+
throw new Error(`Parsing error: ${errCtx.construct}. ID ${errCtx.id}: Attribute is missing its name`);
|
|
85
|
+
}
|
|
86
|
+
if (i >= t.length) {
|
|
87
|
+
throw new Error(`Parsing error: ${errCtx.construct}. ID ${errCtx.id}: Expecting { after ${nameParts.join(' ')}`);
|
|
88
|
+
}
|
|
89
|
+
const blockRaw = t[i++];
|
|
90
|
+
visitor(nameParts.join(' '), (0, tokenize_1.unwrapBlock)(blockRaw));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Convenience: read the next value with surrounding quotes/braces
|
|
95
|
+
* stripped. Pairs with `forEachEntry` for the common case where a
|
|
96
|
+
* visitor wants the unwrapped string form.
|
|
97
|
+
*
|
|
98
|
+
* forEachEntry(data, (kw, value) => {
|
|
99
|
+
* if (kw === 'name') result.name = unwrapped(value);
|
|
100
|
+
* else if (kw === 'modality') result.modality = value();
|
|
101
|
+
* else return false;
|
|
102
|
+
* return true;
|
|
103
|
+
* }, { construct: 'process', id });
|
|
104
|
+
*/
|
|
105
|
+
function unwrapped(value) {
|
|
106
|
+
return (0, tokenize_1.unwrapBlock)(value());
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=parse-block.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-block.js","sourceRoot":"","sources":["../../../src/ser-des/parse-block.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,9 @@ export interface ParseOptions {
|
|
|
16
16
|
* exact source location of any model problem.
|
|
17
17
|
*
|
|
18
18
|
* Duplicate-ID detection runs during parsing (not post-resolution),
|
|
19
|
-
* because the parser silently overwrites duplicate ctx entries.
|
|
20
|
-
*
|
|
19
|
+
* because the parser silently overwrites duplicate ctx entries. The
|
|
20
|
+
* detection itself lives in `duplicate-id.ts` — this module just calls
|
|
21
|
+
* it at the moment each declaration is parsed.
|
|
21
22
|
*/
|
|
22
23
|
export default function parse(mmelString: string, parsers: ParserConfiguration, options?: ParseOptions): ParseContext;
|
|
23
24
|
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/ser-des/parse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAG5D,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/ser-des/parse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAG5D,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,YAAiB,GACzB,YAAY,CAqGd"}
|