@blockml/parser 0.9.0 → 0.9.2
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/blocks/org/blockml/bml/compiler/parser/Library.bml +4 -1
- package/blocks/org/blockml/bml/compiler/parser/capability/ContainsUnescapedInterpolation.bml +53 -0
- package/blocks/org/blockml/bml/compiler/parser/capability/ParseDirectives.bml +2 -1
- package/blocks/org/blockml/bml/compiler/parser/capability/ParseGenericArgumentList.bml +57 -0
- package/blocks/org/blockml/bml/compiler/parser/capability/ParseGenericsBinding.bml +58 -0
- package/blocks/org/blockml/bml/compiler/parser/capability/ParseMemberValue.bml +14 -1
- package/blocks/org/blockml/bml/compiler/parser/config/MapTimeDiagnosticCodes.bml +1 -1
- package/blocks/org/blockml/bml/compiler/parser/documentation/ArchitectureOverview.bml +1 -1
- package/blocks/org/blockml/bml/compiler/parser/documentation/AttributeClassification.bml +1 -1
- package/blocks/org/blockml/bml/compiler/parser/documentation/Diagnostics.bml +1 -0
- package/blocks/org/blockml/bml/compiler/parser/documentation/ExpressionCapture.bml +3 -1
- package/blocks/org/blockml/bml/compiler/parser/documentation/PublicApi.bml +4 -0
- package/blocks/org/blockml/bml/compiler/parser/map/MapContext.bml +3 -0
- package/blocks/org/blockml/bml/compiler/parser/map/MapContextOptions.bml +3 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/map/context.d.ts +3 -1
- package/dist/map/context.d.ts.map +1 -1
- package/dist/map/context.js +3 -0
- package/dist/map/context.js.map +1 -1
- package/dist/map/directives.d.ts +28 -1
- package/dist/map/directives.d.ts.map +1 -1
- package/dist/map/directives.js +54 -3
- package/dist/map/directives.js.map +1 -1
- package/dist/map/map-block.d.ts +2 -2
- package/dist/map/map-block.d.ts.map +1 -1
- package/dist/map/map-block.js +104 -9
- package/dist/map/map-block.js.map +1 -1
- package/dist/map/map-composition.d.ts +10 -1
- package/dist/map/map-composition.d.ts.map +1 -1
- package/dist/map/map-composition.js +28 -13
- package/dist/map/map-composition.js.map +1 -1
- package/dist/map/member-value.d.ts +3 -1
- package/dist/map/member-value.d.ts.map +1 -1
- package/dist/map/member-value.js +49 -25
- package/dist/map/member-value.js.map +1 -1
- package/dist/map/structural.d.ts.map +1 -1
- package/dist/map/structural.js +3 -1
- package/dist/map/structural.js.map +1 -1
- package/dist/map/type-expression.d.ts +17 -0
- package/dist/map/type-expression.d.ts.map +1 -1
- package/dist/map/type-expression.js +32 -2
- package/dist/map/type-expression.js.map +1 -1
- package/dist/parse.js +1 -1
- package/dist/parse.js.map +1 -1
- package/package.json +3 -3
package/dist/map/map-block.js
CHANGED
|
@@ -2,6 +2,7 @@ import { createMapContext } from "./context.js";
|
|
|
2
2
|
import { mapBlockInstanceNode, mapCompositionTemplate, mapTypeReferenceEntityInstance, isTypeReferenceEntitySugar, buildSubBlockIndex, } from "./map-composition.js";
|
|
3
3
|
import { parseTypeExpression, inferCardinality, } from "./type-expression.js";
|
|
4
4
|
import { parseMemberValue } from "./member-value.js";
|
|
5
|
+
import { parseGenericsBinding, isGenericsDirectiveElement } from "./directives.js";
|
|
5
6
|
import { elementChildren, elementLocalName, elementPrefix, getAttribute, getCharacterData, xmlTriviaFromElement, } from "../util/xml.js";
|
|
6
7
|
import { parseVisibilityFromName } from "../util/visibility.js";
|
|
7
8
|
import { parseBooleanAttribute, isBooleanLiteral } from "../util/boolean.js";
|
|
@@ -32,6 +33,10 @@ function mapBlockDefinition(element, ctx, parentType) {
|
|
|
32
33
|
if (unknownAttrs) {
|
|
33
34
|
block.unknownAttributes = unknownAttrs;
|
|
34
35
|
}
|
|
36
|
+
const blockGenerics = parseGenericsBinding(element, ctx, typeResolveOptions(ctx));
|
|
37
|
+
if (blockGenerics) {
|
|
38
|
+
block.generics = blockGenerics;
|
|
39
|
+
}
|
|
35
40
|
const childElements = elementChildren(element);
|
|
36
41
|
const subBlocksRaw = [];
|
|
37
42
|
const embeddedRaw = [];
|
|
@@ -81,6 +86,7 @@ function mapBlockDefinition(element, ctx, parentType) {
|
|
|
81
86
|
if (unknownElements.length > 0) {
|
|
82
87
|
block.unknownElements = unknownElements;
|
|
83
88
|
}
|
|
89
|
+
seedSubBlockIndex(element, block, ctx, parentType, subBlocksRaw);
|
|
84
90
|
mapMetadataFields(element, block, ctx);
|
|
85
91
|
if (!block.name) {
|
|
86
92
|
block.name = block.type.split(".").pop() ?? "Block";
|
|
@@ -106,6 +112,7 @@ function mapBlockDefinition(element, ctx, parentType) {
|
|
|
106
112
|
isRoot: false,
|
|
107
113
|
isEmbedded: false,
|
|
108
114
|
diagnostics: ctx.diagnostics,
|
|
115
|
+
...(ctx.parseValue ? { parseValue: ctx.parseValue } : {}),
|
|
109
116
|
});
|
|
110
117
|
const sb = mapBlockDefinition(sbEl, sbCtx, block.type);
|
|
111
118
|
if (!sb.type) {
|
|
@@ -121,6 +128,7 @@ function mapBlockDefinition(element, ctx, parentType) {
|
|
|
121
128
|
isRoot: false,
|
|
122
129
|
isEmbedded: true,
|
|
123
130
|
diagnostics: ctx.diagnostics,
|
|
131
|
+
...(ctx.parseValue ? { parseValue: ctx.parseValue } : {}),
|
|
124
132
|
});
|
|
125
133
|
block.embeddedBlocks.push(mapBlockDefinition(ebEl, ebCtx));
|
|
126
134
|
}
|
|
@@ -159,6 +167,8 @@ const MEMBER_CHILD_METADATA = new Set([
|
|
|
159
167
|
"throws",
|
|
160
168
|
"bml:xml",
|
|
161
169
|
"xml",
|
|
170
|
+
"generics",
|
|
171
|
+
"bml:generics",
|
|
162
172
|
"abstract",
|
|
163
173
|
"final",
|
|
164
174
|
"language",
|
|
@@ -170,7 +180,7 @@ function isMemberMetadataChild(element) {
|
|
|
170
180
|
if (MEMBER_CHILD_METADATA.has(local)) {
|
|
171
181
|
return true;
|
|
172
182
|
}
|
|
173
|
-
if (prefix === "bml" && (local === "xml" || local === "container")) {
|
|
183
|
+
if (prefix === "bml" && (local === "xml" || local === "container" || local === "generics")) {
|
|
174
184
|
return true;
|
|
175
185
|
}
|
|
176
186
|
return false;
|
|
@@ -361,6 +371,10 @@ function mapMemberBase(element, name, visibility, namespace, ctx) {
|
|
|
361
371
|
const { text } = getCharacterData(xmlEl);
|
|
362
372
|
base.xmlRendering = parseMemberXmlRendering(text, "element");
|
|
363
373
|
}
|
|
374
|
+
const memberGenerics = parseGenericsBinding(element, ctx, typeResolveOptions(ctx));
|
|
375
|
+
if (memberGenerics) {
|
|
376
|
+
base.generics = memberGenerics;
|
|
377
|
+
}
|
|
364
378
|
mapMemberDocumentation(element, base, ctx);
|
|
365
379
|
mapMemberConstraints(element, base, ctx);
|
|
366
380
|
return base;
|
|
@@ -405,6 +419,12 @@ function mapMetadataFields(element, block, ctx) {
|
|
|
405
419
|
if (extraAttrs) {
|
|
406
420
|
block.unknownAttributes = { ...block.unknownAttributes, ...extraAttrs };
|
|
407
421
|
}
|
|
422
|
+
if (MEMBER_SECTIONS.has(elementLocalName(child)) && !block.generics) {
|
|
423
|
+
const sectionGenerics = parseGenericsBinding(child, ctx, typeResolveOptions(ctx));
|
|
424
|
+
if (sectionGenerics) {
|
|
425
|
+
block.generics = sectionGenerics;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
408
428
|
const local = elementLocalName(child);
|
|
409
429
|
switch (local) {
|
|
410
430
|
case "name":
|
|
@@ -505,6 +525,15 @@ function mapMetadataFields(element, block, ctx) {
|
|
|
505
525
|
block.xmlRendering = { raw: text };
|
|
506
526
|
break;
|
|
507
527
|
}
|
|
528
|
+
case "bml:generics":
|
|
529
|
+
case "generics":
|
|
530
|
+
if (isGenericsDirectiveElement(child) && !block.generics) {
|
|
531
|
+
const fromChild = parseGenericsBinding(element, ctx, typeResolveOptions(ctx));
|
|
532
|
+
if (fromChild) {
|
|
533
|
+
block.generics = fromChild;
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
break;
|
|
508
537
|
default:
|
|
509
538
|
break;
|
|
510
539
|
}
|
|
@@ -514,6 +543,59 @@ function mapMetadataFields(element, block, ctx) {
|
|
|
514
543
|
block.xmlRendering = { raw: xmlAttr };
|
|
515
544
|
}
|
|
516
545
|
}
|
|
546
|
+
function seedSubBlockIndex(element, block, ctx, parentType, subBlocksRaw) {
|
|
547
|
+
if (subBlocksRaw.length === 0) {
|
|
548
|
+
return;
|
|
549
|
+
}
|
|
550
|
+
let peekedName = block.name;
|
|
551
|
+
let peekedType = block.type;
|
|
552
|
+
for (const child of elementChildren(element)) {
|
|
553
|
+
const local = elementLocalName(child);
|
|
554
|
+
if (local === "name") {
|
|
555
|
+
peekedName = getTextOrAttr(child) ?? peekedName;
|
|
556
|
+
}
|
|
557
|
+
else if (local === "type") {
|
|
558
|
+
const typeText = getTextOrAttr(child);
|
|
559
|
+
if (typeText) {
|
|
560
|
+
peekedType = resolveBlockReference(typeText, ctx.bindings, ctx.subBlockIndex, parentType);
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
if (!peekedType && parentType && peekedName) {
|
|
565
|
+
peekedType = `${parentType}.${peekedName}`;
|
|
566
|
+
}
|
|
567
|
+
if (!peekedType) {
|
|
568
|
+
return;
|
|
569
|
+
}
|
|
570
|
+
const peeked = subBlocksRaw
|
|
571
|
+
.map((el) => peekSubBlock(el, peekedType, ctx, parentType))
|
|
572
|
+
.filter((entry) => entry !== undefined);
|
|
573
|
+
if (peeked.length === 0) {
|
|
574
|
+
return;
|
|
575
|
+
}
|
|
576
|
+
ctx.subBlockIndex = buildSubBlockIndex(peeked, peekedType);
|
|
577
|
+
ctx.parentBlockType = peekedType;
|
|
578
|
+
}
|
|
579
|
+
function peekSubBlock(element, parentType, ctx, enclosingParent) {
|
|
580
|
+
let name = getAttribute(element, "name");
|
|
581
|
+
let typeText;
|
|
582
|
+
for (const child of elementChildren(element)) {
|
|
583
|
+
const local = elementLocalName(child);
|
|
584
|
+
if (local === "name" && !name) {
|
|
585
|
+
name = getTextOrAttr(child);
|
|
586
|
+
}
|
|
587
|
+
else if (local === "type") {
|
|
588
|
+
typeText = getTextOrAttr(child);
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
if (!name) {
|
|
592
|
+
return undefined;
|
|
593
|
+
}
|
|
594
|
+
const type = typeText
|
|
595
|
+
? resolveBlockReference(typeText, ctx.bindings, ctx.subBlockIndex, enclosingParent ?? parentType)
|
|
596
|
+
: `${parentType}.${name}`;
|
|
597
|
+
return { name, type };
|
|
598
|
+
}
|
|
517
599
|
function getTextOrAttr(element, tag) {
|
|
518
600
|
const el = tag
|
|
519
601
|
? elementChildren(element).find((c) => elementLocalName(c) === tag) ?? element
|
|
@@ -528,7 +610,7 @@ function getTextOrAttr(element, tag) {
|
|
|
528
610
|
function mapLanguage(element, block, ctx) {
|
|
529
611
|
for (const child of elementChildren(element)) {
|
|
530
612
|
if (isTypeReferenceEntitySugar(child, ctx)) {
|
|
531
|
-
const { inst } = mapTypeReferenceEntityInstance(child, ctx);
|
|
613
|
+
const { inst } = mapTypeReferenceEntityInstance(child, ctx, undefined, "language");
|
|
532
614
|
block.language = inst;
|
|
533
615
|
block.languageFqn = inst.value;
|
|
534
616
|
}
|
|
@@ -537,7 +619,7 @@ function mapLanguage(element, block, ctx) {
|
|
|
537
619
|
if (value) {
|
|
538
620
|
block.language = {
|
|
539
621
|
typeFqn: TYPE_REFERENCE_ENTITY,
|
|
540
|
-
value:
|
|
622
|
+
value: resolveTypeName(value, ctx.bindings, "language"),
|
|
541
623
|
};
|
|
542
624
|
block.languageFqn = block.language.value;
|
|
543
625
|
}
|
|
@@ -774,6 +856,13 @@ function parseBaseType(raw, ctx, fallbackParent) {
|
|
|
774
856
|
function namedTypeFqn(raw, ctx, fallbackParent) {
|
|
775
857
|
return parseBaseType(raw, ctx, fallbackParent).fqn;
|
|
776
858
|
}
|
|
859
|
+
function resolveGenericDefaultType(raw, ctx) {
|
|
860
|
+
const expr = parseTypeExpression(raw, ctx.bindings, "type", typeResolveOptions(ctx));
|
|
861
|
+
if (expr.kind === "genericParam") {
|
|
862
|
+
return expr.name;
|
|
863
|
+
}
|
|
864
|
+
return namedTypeFqn(raw, ctx, ctx.parentBlockType);
|
|
865
|
+
}
|
|
777
866
|
function mapGenericTypes(element, ctx) {
|
|
778
867
|
return elementChildren(element).map((c) => {
|
|
779
868
|
const defaultType = getAttribute(c, "defaultType");
|
|
@@ -781,7 +870,9 @@ function mapGenericTypes(element, ctx) {
|
|
|
781
870
|
return {
|
|
782
871
|
name: elementLocalName(c),
|
|
783
872
|
baseType: withElementLocation(ctx.filePath, ctx.source, c, () => namedTypeFqn(raw, ctx, ctx.parentBlockType)),
|
|
784
|
-
...(defaultType !== undefined
|
|
873
|
+
...(defaultType !== undefined
|
|
874
|
+
? { defaultType: resolveGenericDefaultType(defaultType, ctx) }
|
|
875
|
+
: {}),
|
|
785
876
|
};
|
|
786
877
|
});
|
|
787
878
|
}
|
|
@@ -813,14 +904,14 @@ function mapPropertyValues(element, prop, typeFqn, ctx) {
|
|
|
813
904
|
const attrVal = local === "value" ? getAttribute(child, "value") : undefined;
|
|
814
905
|
const { text } = getCharacterData(child);
|
|
815
906
|
const raw = attrVal ?? text;
|
|
816
|
-
const val = parseMemberValue(raw, typeFqn, ctx.filePath, 1, 1, "element");
|
|
907
|
+
const val = parseMemberValue(raw, typeFqn, ctx.filePath, 1, 1, "element", ctx);
|
|
817
908
|
if (val) {
|
|
818
909
|
addEntry(ns, val, child);
|
|
819
910
|
}
|
|
820
911
|
}
|
|
821
912
|
const attrVal = getAttribute(element, "value");
|
|
822
913
|
if (attrVal !== undefined) {
|
|
823
|
-
const val = parseMemberValue(attrVal, typeFqn, ctx.filePath, 1, 1, "attribute");
|
|
914
|
+
const val = parseMemberValue(attrVal, typeFqn, ctx.filePath, 1, 1, "attribute", ctx);
|
|
824
915
|
if (val) {
|
|
825
916
|
const loc = attributeValueLoc(ctx.filePath, ctx.source, element, "value", attrVal);
|
|
826
917
|
addEntry("", val, undefined, loc);
|
|
@@ -861,7 +952,7 @@ function mapSuggestions(element, prop, ctx) {
|
|
|
861
952
|
if (attr.name.startsWith("xmlns") || attr.name.startsWith("xsi:")) {
|
|
862
953
|
continue;
|
|
863
954
|
}
|
|
864
|
-
const val = parseMemberValue(attr.value, local, ctx.filePath, loc.line, loc.column, "attribute");
|
|
955
|
+
const val = parseMemberValue(attr.value, local, ctx.filePath, loc.line, loc.column, "attribute", ctx);
|
|
865
956
|
if (val !== undefined) {
|
|
866
957
|
memberValues[attr.name] = val;
|
|
867
958
|
}
|
|
@@ -960,8 +1051,12 @@ function mapCapabilityThrows(element, cap, ctx) {
|
|
|
960
1051
|
export function mapBlock(element, ctx) {
|
|
961
1052
|
return mapBlockDefinition(element, ctx);
|
|
962
1053
|
}
|
|
963
|
-
export function mapDocumentBlock(element, filePath, source, bindings, diagnostics = []) {
|
|
964
|
-
const ctx = createMapContext(filePath, source, bindings, {
|
|
1054
|
+
export function mapDocumentBlock(element, filePath, source, bindings, diagnostics = [], parseValue) {
|
|
1055
|
+
const ctx = createMapContext(filePath, source, bindings, {
|
|
1056
|
+
isRoot: true,
|
|
1057
|
+
diagnostics,
|
|
1058
|
+
...(parseValue ? { parseValue } : {}),
|
|
1059
|
+
});
|
|
965
1060
|
return withElementLocation(filePath, source, element, () => mapBlockDefinition(element, ctx));
|
|
966
1061
|
}
|
|
967
1062
|
//# sourceMappingURL=map-block.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-block.js","sourceRoot":"","sources":["../../src/map/map-block.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"map-block.js","sourceRoot":"","sources":["../../src/map/map-block.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,28 @@
|
|
|
1
1
|
import type { BlockInstanceNode, CompositionTemplate } from "@blockml/bom";
|
|
2
2
|
import type { Element } from "@xmldom/xmldom";
|
|
3
|
+
import { type ImplicitNamespaceContext } from "../util/qname.js";
|
|
3
4
|
import type { MapContext } from "./context.js";
|
|
4
5
|
export declare function mapCompositionTemplate(element: Element, aggregationName: string, ctx: MapContext): CompositionTemplate;
|
|
5
6
|
export declare function mapBlockInstanceNode(element: Element, ctx: MapContext): BlockInstanceNode;
|
|
6
7
|
export declare function isTypeReferenceEntitySugar(element: Element, ctx: MapContext): boolean;
|
|
7
|
-
export declare function mapTypeReferenceEntityInstance(element: Element, ctx: MapContext, boundB?: string): {
|
|
8
|
+
export declare function mapTypeReferenceEntityInstance(element: Element, ctx: MapContext, boundB?: string, implicit?: ImplicitNamespaceContext): {
|
|
8
9
|
inst: {
|
|
9
10
|
boundB?: string;
|
|
10
11
|
typeFqn: "org.blockml.bml.type.TypeReferenceEntity";
|
|
11
12
|
value: string;
|
|
12
13
|
};
|
|
13
14
|
version: import("@blockml/bom").ExpressionValue | {
|
|
15
|
+
kind: "interpolated";
|
|
16
|
+
raw: string;
|
|
17
|
+
source: import("@blockml/bom").SourceLocation;
|
|
18
|
+
value?: never;
|
|
19
|
+
typeFqn?: never;
|
|
20
|
+
} | {
|
|
14
21
|
kind: "literal";
|
|
15
22
|
value: string;
|
|
16
23
|
typeFqn: string;
|
|
24
|
+
raw?: never;
|
|
25
|
+
source?: never;
|
|
17
26
|
} | undefined;
|
|
18
27
|
};
|
|
19
28
|
export declare function buildSubBlockIndex(subBlocks: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-composition.d.ts","sourceRoot":"","sources":["../../src/map/map-composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EAEjB,mBAAmB,EAEpB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"map-composition.d.ts","sourceRoot":"","sources":["../../src/map/map-composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EAEjB,mBAAmB,EAEpB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAiB9C,OAAO,EAML,KAAK,wBAAwB,EAC9B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAmD/C,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,UAAU,GACd,mBAAmB,CAuBrB;AAuCD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,UAAU,GACd,iBAAiB,CAoInB;AASD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,UAAU,GACd,OAAO,CAWT;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,UAAU,EACf,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,wBAAwB;;;iBA6BC,0CAA0C;;;;;;;;;;;;;;;;EAK/E;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3C,UAAU,EAAE,MAAM,GACjB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQrB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { parseDirectives, parseBmlMeta, } from "./directives.js";
|
|
1
|
+
import { parseDirectives, parseBmlMeta, parseGenericsBinding, isGenericsDirectiveElement, } from "./directives.js";
|
|
2
2
|
import { parseMemberValue } from "./member-value.js";
|
|
3
3
|
import { elementChildren, elementLocalName, elementPrefix, getAttribute, getCharacterData, isElement, xmlTriviaFromElement, } from "../util/xml.js";
|
|
4
4
|
import { resolveBlockReference, resolvePrefix, resolveTypeName, TYPE_REFERENCE_ENTITY, elementSourceLoc, } from "../util/qname.js";
|
|
@@ -53,12 +53,14 @@ export function mapCompositionTemplate(element, aggregationName, ctx) {
|
|
|
53
53
|
reportUnexpectedTextChildren(compositionEl, ctx);
|
|
54
54
|
}
|
|
55
55
|
const directives = parseDirectives(target, loc, ctx);
|
|
56
|
+
const generics = parseGenericsBinding(target, ctx);
|
|
56
57
|
const children = compositionEl
|
|
57
58
|
? mapCompositionChildren(compositionEl, ctx)
|
|
58
59
|
: mapCompositionChildren(element, ctx);
|
|
59
60
|
return {
|
|
60
61
|
aggregationName,
|
|
61
62
|
...(directives.length > 0 ? { directives } : {}),
|
|
63
|
+
...(generics ? { generics } : {}),
|
|
62
64
|
children,
|
|
63
65
|
source: loc,
|
|
64
66
|
};
|
|
@@ -74,16 +76,18 @@ function mapCompositionChildren(compositionEl, ctx) {
|
|
|
74
76
|
if (METADATA_ELEMENTS.has(local)) {
|
|
75
77
|
continue;
|
|
76
78
|
}
|
|
77
|
-
if (elementPrefix(child) === "bml" && (local === "xml" || local === "
|
|
79
|
+
if (elementPrefix(child) === "bml" && (local === "xml" || local === "generics")) {
|
|
78
80
|
continue;
|
|
79
81
|
}
|
|
80
82
|
if (local === "container" || local === "bml:container") {
|
|
81
83
|
const loc = elementSourceLoc(ctx.filePath, ctx.source, child);
|
|
82
84
|
reportUnexpectedTextChildren(child, ctx);
|
|
83
85
|
const directives = parseDirectives(child, loc, ctx);
|
|
86
|
+
const generics = parseGenericsBinding(child, ctx);
|
|
84
87
|
const vnode = {
|
|
85
88
|
kind: "virtualContainer",
|
|
86
89
|
...(directives.length > 0 ? { directives } : {}),
|
|
90
|
+
...(generics ? { generics } : {}),
|
|
87
91
|
children: mapCompositionChildren(child, ctx),
|
|
88
92
|
source: loc,
|
|
89
93
|
};
|
|
@@ -118,7 +122,7 @@ export function mapBlockInstanceNode(element, ctx) {
|
|
|
118
122
|
if (["id", "version", "bean", "scope"].includes(attrLocal) && attrName.startsWith("bml:")) {
|
|
119
123
|
continue;
|
|
120
124
|
}
|
|
121
|
-
const val = parseMemberValue(attr.value, typeFqn, ctx.filePath, loc.line, loc.column, "attribute");
|
|
125
|
+
const val = parseMemberValue(attr.value, typeFqn, ctx.filePath, loc.line, loc.column, "attribute", ctx);
|
|
122
126
|
if (val) {
|
|
123
127
|
memberValues[attrLocal] = val;
|
|
124
128
|
}
|
|
@@ -130,6 +134,9 @@ export function mapBlockInstanceNode(element, ctx) {
|
|
|
130
134
|
if (childLocal === "composition" || RESERVED.has(childLocal)) {
|
|
131
135
|
continue;
|
|
132
136
|
}
|
|
137
|
+
if (isGenericsDirectiveElement(child)) {
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
133
140
|
if (!instanceMemberIsAggregationFill(child)) {
|
|
134
141
|
continue;
|
|
135
142
|
}
|
|
@@ -149,16 +156,20 @@ export function mapBlockInstanceNode(element, ctx) {
|
|
|
149
156
|
if (RESERVED.has(childLocal)) {
|
|
150
157
|
continue;
|
|
151
158
|
}
|
|
159
|
+
if (isGenericsDirectiveElement(child)) {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
152
162
|
if (instanceMemberIsAggregationFill(child)) {
|
|
153
163
|
continue;
|
|
154
164
|
}
|
|
155
165
|
const { text } = getCharacterData(child);
|
|
156
|
-
const val = parseMemberValue(text || getAttribute(child, "value"), typeFqn, ctx.filePath, loc.line, loc.column, "element");
|
|
166
|
+
const val = parseMemberValue(text || getAttribute(child, "value"), typeFqn, ctx.filePath, loc.line, loc.column, "element", ctx);
|
|
157
167
|
if (val) {
|
|
158
168
|
memberValues[childLocal] = val;
|
|
159
169
|
}
|
|
160
170
|
}
|
|
161
171
|
const directives = parseDirectives(element, loc, ctx);
|
|
172
|
+
const generics = parseGenericsBinding(element, ctx);
|
|
162
173
|
const instance = {
|
|
163
174
|
typeFqn,
|
|
164
175
|
memberValues: Object.fromEntries(Object.entries(memberValues).filter(([, v]) => v !== undefined)),
|
|
@@ -176,6 +187,8 @@ export function mapBlockInstanceNode(element, ctx) {
|
|
|
176
187
|
instance.bean = meta.bean;
|
|
177
188
|
if (meta.scope)
|
|
178
189
|
instance.scope = meta.scope;
|
|
190
|
+
if (generics)
|
|
191
|
+
instance.generics = generics;
|
|
179
192
|
const trivia = xmlTriviaFromElement(element);
|
|
180
193
|
if (trivia)
|
|
181
194
|
instance.xmlTrivia = trivia;
|
|
@@ -207,21 +220,23 @@ export function isTypeReferenceEntitySugar(element, ctx) {
|
|
|
207
220
|
const local = elementLocalName(element);
|
|
208
221
|
return local !== "TypeReferenceEntity" && local !== "composition";
|
|
209
222
|
}
|
|
210
|
-
export function mapTypeReferenceEntityInstance(element, ctx, boundB) {
|
|
223
|
+
export function mapTypeReferenceEntityInstance(element, ctx, boundB, implicit) {
|
|
211
224
|
const prefix = elementPrefix(element);
|
|
212
225
|
const local = elementLocalName(element);
|
|
213
226
|
const qname = prefix ? `${prefix}:${local}` : local;
|
|
214
227
|
const valueAttr = getAttribute(element, "value");
|
|
228
|
+
const raw = valueAttr ?? qname;
|
|
215
229
|
let value;
|
|
216
|
-
|
|
217
|
-
value =
|
|
218
|
-
valueAttr ??
|
|
219
|
-
resolveBlockReference(prefix ? `${prefix}:${local}` : local, ctx.bindings, ctx.subBlockIndex, ctx.parentBlockType);
|
|
230
|
+
if (implicit === "language") {
|
|
231
|
+
value = resolveTypeName(raw, ctx.bindings, "language");
|
|
220
232
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
233
|
+
else {
|
|
234
|
+
try {
|
|
235
|
+
value = resolveBlockReference(raw, ctx.bindings, ctx.subBlockIndex, ctx.parentBlockType);
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
value = resolveTypeName(local, ctx.bindings, "language");
|
|
239
|
+
}
|
|
225
240
|
}
|
|
226
241
|
const meta = parseBmlMeta(element, TYPE_REFERENCE_ENTITY, ctx.filePath, elementSourceLoc(ctx.filePath, ctx.source, element));
|
|
227
242
|
const inst = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-composition.js","sourceRoot":"","sources":["../../src/map/map-composition.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,eAAe,EACf,YAAY,
|
|
1
|
+
{"version":3,"file":"map-composition.js","sourceRoot":"","sources":["../../src/map/map-composition.ts"],"names":[],"mappings":"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"}
|