@blockml/parser 0.8.1 → 0.9.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.
Files changed (39) hide show
  1. package/blocks/org/blockml/bml/compiler/parser/Library.bml +4 -1
  2. package/blocks/org/blockml/bml/compiler/parser/capability/ContainsUnescapedInterpolation.bml +53 -0
  3. package/blocks/org/blockml/bml/compiler/parser/capability/ParseDirectives.bml +2 -1
  4. package/blocks/org/blockml/bml/compiler/parser/capability/ParseGenericArgumentList.bml +57 -0
  5. package/blocks/org/blockml/bml/compiler/parser/capability/ParseGenericsBinding.bml +58 -0
  6. package/blocks/org/blockml/bml/compiler/parser/config/MapTimeDiagnosticCodes.bml +1 -1
  7. package/blocks/org/blockml/bml/compiler/parser/documentation/ArchitectureOverview.bml +1 -1
  8. package/blocks/org/blockml/bml/compiler/parser/documentation/AttributeClassification.bml +1 -1
  9. package/blocks/org/blockml/bml/compiler/parser/documentation/Diagnostics.bml +2 -0
  10. package/blocks/org/blockml/bml/compiler/parser/documentation/ExpressionCapture.bml +3 -1
  11. package/blocks/org/blockml/bml/compiler/parser/documentation/MemberMapping.bml +15 -4
  12. package/dist/index.d.ts +1 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +1 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/map/directives.d.ts +28 -1
  17. package/dist/map/directives.d.ts.map +1 -1
  18. package/dist/map/directives.js +54 -3
  19. package/dist/map/directives.js.map +1 -1
  20. package/dist/map/map-block.d.ts.map +1 -1
  21. package/dist/map/map-block.js +172 -27
  22. package/dist/map/map-block.js.map +1 -1
  23. package/dist/map/map-composition.d.ts +8 -0
  24. package/dist/map/map-composition.d.ts.map +1 -1
  25. package/dist/map/map-composition.js +42 -20
  26. package/dist/map/map-composition.js.map +1 -1
  27. package/dist/map/member-value.d.ts +1 -0
  28. package/dist/map/member-value.d.ts.map +1 -1
  29. package/dist/map/member-value.js +22 -0
  30. package/dist/map/member-value.js.map +1 -1
  31. package/dist/map/structural.d.ts +2 -0
  32. package/dist/map/structural.d.ts.map +1 -1
  33. package/dist/map/structural.js +9 -1
  34. package/dist/map/structural.js.map +1 -1
  35. package/dist/map/type-expression.d.ts +17 -0
  36. package/dist/map/type-expression.d.ts.map +1 -1
  37. package/dist/map/type-expression.js +32 -2
  38. package/dist/map/type-expression.js.map +1 -1
  39. package/package.json +3 -3
@@ -43,7 +43,7 @@
43
43
  (@blockml/bom). Membership is defined exclusively by this blocks list.
44
44
  </documentation>
45
45
 
46
- <version>0.8.1</version>
46
+ <version>0.9.1</version>
47
47
 
48
48
  <language>
49
49
  <English />
@@ -96,11 +96,14 @@
96
96
  <parcap:MapTypeReferenceEntityInstance />
97
97
  <parcap:BuildSubBlockIndex />
98
98
  <parcap:ParseTypeExpression />
99
+ <parcap:ParseGenericArgumentList />
99
100
  <parcap:InferCardinality />
100
101
  <parcap:TypeExpressionToString />
101
102
  <parcap:ParseMemberValue />
103
+ <parcap:ContainsUnescapedInterpolation />
102
104
  <parcap:ExpressionFromRaw />
103
105
  <parcap:ParseDirectives />
106
+ <parcap:ParseGenericsBinding />
104
107
  <parcap:ParseBmlMeta />
105
108
  <parcap:ParseVisibilityFromName />
106
109
  <parcap:VisibilityPrefix />
@@ -0,0 +1,53 @@
1
+ <!--
2
+ Parser Capability — ContainsUnescapedInterpolation
3
+ FQN: org.blockml.bml.compiler.parser.capability.ContainsUnescapedInterpolation
4
+ -->
5
+ <block
6
+ xmlns="http://blockml.org/bml"
7
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
+ xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
9
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomapi="org.blockml.bml.bom.api"
13
+ xmlns:bomblock="org.blockml.bml.bom.block"
14
+ xmlns:bomcommon="org.blockml.bml.bom.common"
15
+ xmlns:bomcomp="org.blockml.bml.bom.composition"
16
+ xmlns:bomdoc="org.blockml.bml.bom.document"
17
+ xmlns:bomtype="org.blockml.bml.bom.type"
18
+ xmlns:bomvalue="org.blockml.bml.bom.value"
19
+ xmlns:core="org.blockml.bml.core"
20
+ xmlns:def="org.blockml.bml.definition"
21
+ xmlns:parser="org.blockml.bml.compiler.parser"
22
+ xmlns:parcap="org.blockml.bml.compiler.parser.capability"
23
+ xmlns:parconfig="org.blockml.bml.compiler.parser.config"
24
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
25
+ xmlns:parmap="org.blockml.bml.compiler.parser.map"
26
+ xmlns:type="org.blockml.bml.type"
27
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
28
+ xmlns:bomcap="org.blockml.bml.bom.capability"
29
+ xmlns:serdocumentation="org.blockml.bml.compiler.serializer.documentation"
30
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
31
+
32
+ <name>ContainsUnescapedInterpolation</name>
33
+ <type>parcap:ContainsUnescapedInterpolation</type>
34
+ <baseType>core:Capability</baseType>
35
+ <is>Detect unescaped ${…} interpolation in raw text</is>
36
+
37
+ <documentation>True when raw contains ${ not preceded by a backslash. Used by ParseMemberValue and ParseDirectives to choose InterpolatedTextValue over a JSON-like literal.</documentation>
38
+
39
+ <references>
40
+ <see type="pardocumentation:ExpressionCapture" relation="SeeAlso" />
41
+ <see type="parcap:ParseMemberValue" relation="SeeAlso" />
42
+ </references>
43
+
44
+ <properties>
45
+ <raw type="type:Text">
46
+ <documentation>raw. TS type: type:Text. (required)</documentation>
47
+ </raw>
48
+ <result type="type:Boolean">
49
+ <documentation>result. TS type: type:Boolean. (required)</documentation>
50
+ </result>
51
+ </properties>
52
+
53
+ </block>
@@ -34,7 +34,8 @@
34
34
  <baseType>core:Capability</baseType>
35
35
  <is>Parse bml:each/if/unless/with directive attributes</is>
36
36
 
37
- <documentation>Parse bml:each/if/unless/with directive attributes</documentation>
37
+ <documentation>Parse bml:each/if/unless/with directive attributes.
38
+ bml:generics is composition meta (ParseGenericsBinding), not a flow-control directive.</documentation>
38
39
 
39
40
  <references>
40
41
  <see type="pardocumentation:AttributeClassification" relation="SeeAlso" />
@@ -0,0 +1,57 @@
1
+ <!--
2
+ Parser Capability — ParseGenericArgumentList
3
+ FQN: org.blockml.bml.compiler.parser.capability.ParseGenericArgumentList
4
+ -->
5
+ <block
6
+ xmlns="http://blockml.org/bml"
7
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
+ xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
9
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomapi="org.blockml.bml.bom.api"
13
+ xmlns:bomblock="org.blockml.bml.bom.block"
14
+ xmlns:bomcommon="org.blockml.bml.bom.common"
15
+ xmlns:bomcomp="org.blockml.bml.bom.composition"
16
+ xmlns:bomdoc="org.blockml.bml.bom.document"
17
+ xmlns:bomtype="org.blockml.bml.bom.type"
18
+ xmlns:bomvalue="org.blockml.bml.bom.value"
19
+ xmlns:core="org.blockml.bml.core"
20
+ xmlns:def="org.blockml.bml.definition"
21
+ xmlns:parser="org.blockml.bml.compiler.parser"
22
+ xmlns:parcap="org.blockml.bml.compiler.parser.capability"
23
+ xmlns:parconfig="org.blockml.bml.compiler.parser.config"
24
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
25
+ xmlns:parmap="org.blockml.bml.compiler.parser.map"
26
+ xmlns:type="org.blockml.bml.type"
27
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
28
+ xmlns:bomcap="org.blockml.bml.bom.capability"
29
+ xmlns:serdocumentation="org.blockml.bml.compiler.serializer.documentation"
30
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
31
+
32
+ <name>ParseGenericArgumentList</name>
33
+ <type>parcap:ParseGenericArgumentList</type>
34
+ <baseType>core:Capability</baseType>
35
+ <is>Parse a parenthesized TypeExpression list for bml:generics</is>
36
+
37
+ <documentation>Parse a parenthesized TypeExpression list for bml:generics.
38
+ Outer parentheses are required. Reuses the TypeExpression parser used by
39
+ baseType generic applications, without a leading type name.</documentation>
40
+
41
+ <references>
42
+ <see type="parcap:ParseTypeExpression" relation="SeeAlso" />
43
+ </references>
44
+
45
+ <properties>
46
+ <raw type="type:Text">
47
+ <documentation>raw. TS type: type:Text. (required)</documentation>
48
+ </raw>
49
+ <bindings type="type:Text">
50
+ <documentation>xmlns prefix bindings. (required)</documentation>
51
+ </bindings>
52
+ <arguments type="bomtype:TypeExpression[]">
53
+ <documentation>arguments. TS type: bomtype:TypeExpression[]. (required)</documentation>
54
+ </arguments>
55
+ </properties>
56
+
57
+ </block>
@@ -0,0 +1,58 @@
1
+ <!--
2
+ Parser Capability — ParseGenericsBinding
3
+ FQN: org.blockml.bml.compiler.parser.capability.ParseGenericsBinding
4
+ -->
5
+ <block
6
+ xmlns="http://blockml.org/bml"
7
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
+ xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
9
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomapi="org.blockml.bml.bom.api"
13
+ xmlns:bomblock="org.blockml.bml.bom.block"
14
+ xmlns:bomcommon="org.blockml.bml.bom.common"
15
+ xmlns:bomcomp="org.blockml.bml.bom.composition"
16
+ xmlns:bomdoc="org.blockml.bml.bom.document"
17
+ xmlns:bomtype="org.blockml.bml.bom.type"
18
+ xmlns:bomvalue="org.blockml.bml.bom.value"
19
+ xmlns:core="org.blockml.bml.core"
20
+ xmlns:def="org.blockml.bml.definition"
21
+ xmlns:parser="org.blockml.bml.compiler.parser"
22
+ xmlns:parcap="org.blockml.bml.compiler.parser.capability"
23
+ xmlns:parconfig="org.blockml.bml.compiler.parser.config"
24
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
25
+ xmlns:parmap="org.blockml.bml.compiler.parser.map"
26
+ xmlns:type="org.blockml.bml.type"
27
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
28
+ xmlns:bomcap="org.blockml.bml.bom.capability"
29
+ xmlns:serdocumentation="org.blockml.bml.compiler.serializer.documentation"
30
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
31
+
32
+ <name>ParseGenericsBinding</name>
33
+ <type>parcap:ParseGenericsBinding</type>
34
+ <baseType>core:Capability</baseType>
35
+ <is>Parse bml:generics attribute or child element into GenericsBinding</is>
36
+
37
+ <documentation>Parse bml:generics as attribute or child element. Attribute form wins.
38
+ Stores lossless raw plus parsed TypeExpression arguments when parentheses
39
+ are present and well-formed.</documentation>
40
+
41
+ <references>
42
+ <see type="parcap:ParseGenericArgumentList" relation="SeeAlso" />
43
+ <see type="pardocumentation:AttributeClassification" relation="SeeAlso" />
44
+ </references>
45
+
46
+ <properties>
47
+ <element type="parmap:XmlDomNode">
48
+ <documentation>element. TS type: parmap:XmlDomNode. (required)</documentation>
49
+ </element>
50
+ <ctx type="parmap:MapContext">
51
+ <documentation>ctx. TS type: parmap:MapContext. (required)</documentation>
52
+ </ctx>
53
+ <binding type="bomcomp:GenericsBinding">
54
+ <documentation>binding. TS type: bomcomp:GenericsBinding. (optional)</documentation>
55
+ </binding>
56
+ </properties>
57
+
58
+ </block>
@@ -38,7 +38,7 @@
38
38
 
39
39
  <properties>
40
40
  <codes type="type:Text[]">
41
- <documentation>Ordered: BML_UNSUPPORTED_FORMAT, BML_MALFORMED_XML, BML_MISSING_ROOT, BML_INVALID_ROOT, BML_MAP_ERROR, BML_UNKNOWN_NAMESPACE_PREFIX, BML_UNQUALIFIED_BLOCK_REFERENCE, BML_UNKNOWN_TYPE, BML_INVALID_TYPE_REFERENCE, BML_UNKNOWN_ELEMENT, BML_UNKNOWN_ATTRIBUTE, BML_UNKNOWN_DIRECTIVE, BML_STANDALONE_COMPOSITION, BML_DUPLICATE_COMPOSITION, BML_UNEXPECTED_TEXT (required)</documentation>
41
+ <documentation>Ordered: BML_UNSUPPORTED_FORMAT, BML_MALFORMED_XML, BML_MISSING_ROOT, BML_INVALID_ROOT, BML_MAP_ERROR, BML_UNKNOWN_NAMESPACE_PREFIX, BML_UNQUALIFIED_BLOCK_REFERENCE, BML_UNKNOWN_TYPE, BML_INVALID_TYPE_REFERENCE, BML_UNKNOWN_ELEMENT, BML_UNKNOWN_ATTRIBUTE, BML_UNKNOWN_DIRECTIVE, BML_STANDALONE_COMPOSITION, BML_NESTED_COMPOSITION, BML_DUPLICATE_COMPOSITION, BML_DUPLICATE_PROPERTY_VALUE, BML_UNEXPECTED_TEXT (required)</documentation>
42
42
  </codes>
43
43
  </properties>
44
44
 
@@ -54,7 +54,7 @@
54
54
  • map/map-block.ts → parcap:MapDocumentBlock, MapBlock
55
55
  • map/map-composition.ts → composition tree mapping
56
56
  • map/type-expression.ts → parcap:ParseTypeExpression
57
- • map/member-value.ts → parcap:ParseMemberValue
57
+ • map/member-value.ts → parcap:ParseMemberValue, ContainsUnescapedInterpolation, ExpressionFromRaw
58
58
  • map/directives.ts → parcap:ParseDirectives, ParseBmlMeta
59
59
  • util/* → visibility, boolean, qname, xml helpers]]></documentation>
60
60
 
@@ -43,7 +43,7 @@
43
43
  • other xsi:* → ignore (not memberValues)
44
44
 
45
45
  Rule 2 — bml:* attributes:
46
- • Composition meta (bml:id, bml:version, …) → BlockInstance fields
46
+ • Composition meta (bml:id, bml:version, bml:generics, …) → BlockInstance fields
47
47
  • Directives (bml:each, bml:if, …) → directives[]
48
48
  • Unknown bml:* → BML_UNKNOWN_DIRECTIVE (error at map time — B2)
49
49
 
@@ -50,7 +50,9 @@
50
50
  • BML_UNKNOWN_ATTRIBUTE — attribute not allowed on a grammar node (structural)
51
51
  • BML_UNKNOWN_DIRECTIVE — unknown bml:* attribute (B2)
52
52
  • BML_STANDALONE_COMPOSITION — <composition> not a direct child of an aggregation member
53
+ • BML_NESTED_COMPOSITION — <composition> inside an aggregation that is already nested in a composition
53
54
  • BML_DUPLICATE_COMPOSITION — more than one <composition> on the same aggregation member
55
+ • BML_DUPLICATE_PROPERTY_VALUE — more than one <value> for the same namespace on a property
54
56
  • BML_UNEXPECTED_TEXT — non-whitespace text on an element-only grammar node
55
57
 
56
58
  Map-time diagnostics attach Diagnostic.source to the use-site token when known
@@ -36,10 +36,12 @@
36
36
  <is>Raw expression storage — no AST in Urmodell (B4)</is>
37
37
 
38
38
  <documentation>${ … } attribute/element values → ExpressionValue { raw, source }.
39
+ Mixed text with ${ … } holes → InterpolatedTextValue { raw, source }.
39
40
  Implementation CDATA → embeddedExpressions[] with source offsets.
40
41
 
41
42
  Parser step [5] captures raw text only. AST construction via parseExpression()
42
- in @blockml/framework (Stage 2 utility) — never stored on Urmodell.
43
+ / parseInterpolatedText() in @blockml/framework (Stage 2 utility) — never stored
44
+ on Urmodell.
43
45
 
44
46
  inputType/outputType on capabilities → TypeExpression at map time (B3).</documentation>
45
47
 
@@ -38,11 +38,22 @@
38
38
  <documentation><![CDATA[Property/aggregation/association/capability members:
39
39
  • Element QName = member identity (deprecated namespace= attr → error)
40
40
  • type attribute → TypeExpression; value/memberValues for properties
41
- • One <composition> per aggregation member, as a direct child of that member
42
- (not of <block>, <aggregations>, or nested inside metadata). Extra copies →
43
- BML_DUPLICATE_COMPOSITION. Misplaced BML_STANDALONE_COMPOSITION.
44
- Sugar without a <composition> wrapper (instances as direct children) stays allowed.
41
+ • One <value> per namespace on a property member. Unprefixed <value> /
42
+ value="…" is the canonical namespace (""). Prefixed <prefix:value>
43
+ (Annotation xmlns) is a separate facet. Extra copies of the same
44
+ namespace BML_DUPLICATE_PROPERTY_VALUE.
45
+ • One <composition> per aggregation member on a Block definition, as a direct
46
+ child of that member (not of <block>, <aggregations>, nested inside metadata,
47
+ or inside an aggregation that is already nested in a composition). Extra
48
+ copies → BML_DUPLICATE_COMPOSITION. Misplaced → BML_STANDALONE_COMPOSITION.
49
+ Wrapper inside a composition instance aggregation → BML_NESTED_COMPOSITION
50
+ (children still mapped). On Block instances, aggregations are filled by
51
+ member name with children as direct descendants — no <composition> wrapper.
52
+ Sugar without a <composition> wrapper (instances as direct children) stays
53
+ allowed on definitions.
45
54
  • Constraints/suggestions → BlockInstance[] in document order
55
+ • Capability <throws> → TypeReferenceEntityInstance[] (empty-QName sugar or
56
+ explicit type:TypeReferenceEntity); bound B = core:Exception
46
57
  • Sub-Blocks and embedded blocks → nested BlockDefinition trees
47
58
  • Redundant aggregation type on override → validator warning B19; parser must not apply
48
59
 
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { parse } from "./parse.js";
2
2
  export { isWellKnownTypeFqn, resolveTypeName, type ImplicitNamespaceContext, } from "./util/qname.js";
3
+ export { parseTypeExpression, parseGenericArgumentList, type ParseGenericArgumentListResult, type TypeExpressionResolveOptions, } from "./map/type-expression.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,KAAK,wBAAwB,GAC9B,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,KAAK,wBAAwB,GAC9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,GAClC,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { parse } from "./parse.js";
2
2
  export { isWellKnownTypeFqn, resolveTypeName, } from "./util/qname.js";
3
+ export { parseTypeExpression, parseGenericArgumentList, } from "./map/type-expression.js";
3
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,eAAe,GAEhB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,eAAe,GAEhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GAGzB,MAAM,0BAA0B,CAAC"}
@@ -1,23 +1,50 @@
1
- import type { DirectiveAttribute, ExpressionValue } from "@blockml/bom";
1
+ import type { DirectiveAttribute, ExpressionValue, GenericsBinding } from "@blockml/bom";
2
2
  import type { Element } from "@xmldom/xmldom";
3
3
  import type { SourceLocation } from "@blockml/bom";
4
4
  import type { MapContext } from "./context.js";
5
+ import { type TypeExpressionResolveOptions } from "./type-expression.js";
6
+ export declare const isGenericsDirectiveElement: (element: Element) => boolean;
7
+ export declare function parseGenericsBinding(element: Element, ctx: MapContext, options?: TypeExpressionResolveOptions): GenericsBinding | undefined;
5
8
  export declare function parseDirectives(element: Element, loc: SourceLocation, ctx?: MapContext): DirectiveAttribute[];
6
9
  export declare function parseBmlMeta(element: Element, typeFqn: string, file: string, loc: SourceLocation): {
7
10
  id: ExpressionValue | {
11
+ kind: "interpolated";
12
+ raw: string;
13
+ source: SourceLocation;
14
+ value?: never;
15
+ typeFqn?: never;
16
+ } | {
8
17
  kind: "literal";
9
18
  value: string;
10
19
  typeFqn: string;
20
+ raw?: never;
21
+ source?: never;
11
22
  } | undefined;
12
23
  version: ExpressionValue | {
24
+ kind: "interpolated";
25
+ raw: string;
26
+ source: SourceLocation;
27
+ value?: never;
28
+ typeFqn?: never;
29
+ } | {
13
30
  kind: "literal";
14
31
  value: string;
15
32
  typeFqn: string;
33
+ raw?: never;
34
+ source?: never;
16
35
  } | undefined;
17
36
  bean: ExpressionValue | {
37
+ kind: "interpolated";
38
+ raw: string;
39
+ source: SourceLocation;
40
+ value?: never;
41
+ typeFqn?: never;
42
+ } | {
18
43
  kind: "literal";
19
44
  value: string;
20
45
  typeFqn: string;
46
+ raw?: never;
47
+ source?: never;
21
48
  } | undefined;
22
49
  scope: "local" | "context" | undefined;
23
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../src/map/directives.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,eAAe,EAKhB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAY/C,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,cAAc,EACnB,GAAG,CAAC,EAAE,UAAU,GACf,kBAAkB,EAAE,CAgEtB;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,cAAc;;;;;;;;;;;;;;;;;EAiBpB"}
1
+ {"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../src/map/directives.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,eAAe,EACf,eAAe,EAKhB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAS9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,sBAAsB,CAAC;AAY9B,eAAO,MAAM,0BAA0B,GAAI,SAAS,OAAO,KAAG,OAI7D,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,4BAA4B,GACrC,eAAe,GAAG,SAAS,CAoC7B;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,cAAc,EACnB,GAAG,CAAC,EAAE,UAAU,GACf,kBAAkB,EAAE,CAgEtB;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBpB"}
@@ -1,11 +1,53 @@
1
- import { expressionFromRaw } from "./member-value.js";
2
- import { getAttribute } from "../util/xml.js";
3
- import { collectUnknownBmlAttributes } from "./structural.js";
1
+ import { containsUnescapedInterpolation, expressionFromRaw } from "./member-value.js";
2
+ import { elementChildren, elementLocalName, elementPrefix, getAttribute, getCharacterData, } from "../util/xml.js";
3
+ import { collectUnknownBmlAttributes, reportDiagnostic } from "./structural.js";
4
+ import { parseGenericArgumentList, } from "./type-expression.js";
5
+ import { attributeValueLoc, elementSourceLoc } from "../util/qname.js";
4
6
  const BML_NS = "http://blockml.org/bml";
5
7
  function bmlAttr(element, local) {
6
8
  return (getAttribute(element, `bml:${local}`) ??
7
9
  getAttribute(element, `${BML_NS}:${local}`));
8
10
  }
11
+ export const isGenericsDirectiveElement = (element) => {
12
+ const local = elementLocalName(element);
13
+ const prefix = elementPrefix(element);
14
+ return (prefix === "bml" && local === "generics") || local === "bml:generics";
15
+ };
16
+ export function parseGenericsBinding(element, ctx, options) {
17
+ const loc = elementSourceLoc(ctx.filePath, ctx.source, element);
18
+ const attr = bmlAttr(element, "generics");
19
+ const child = elementChildren(element).find(isGenericsDirectiveElement);
20
+ let raw;
21
+ let authoredPlacement;
22
+ let source = loc;
23
+ if (attr !== undefined) {
24
+ raw = attr;
25
+ authoredPlacement = "attribute";
26
+ source =
27
+ attributeValueLoc(ctx.filePath, ctx.source, element, "bml:generics", attr) ?? loc;
28
+ }
29
+ else if (child) {
30
+ raw = getCharacterData(child).text;
31
+ authoredPlacement = "element";
32
+ source = elementSourceLoc(ctx.filePath, ctx.source, child);
33
+ }
34
+ else {
35
+ return undefined;
36
+ }
37
+ const binding = {
38
+ raw,
39
+ authoredPlacement,
40
+ source,
41
+ };
42
+ const parsed = parseGenericArgumentList(raw, ctx.bindings, "type", options);
43
+ if (parsed.ok) {
44
+ binding.arguments = parsed.arguments;
45
+ }
46
+ else if (parsed.code === "BML_INVALID_TYPE_REFERENCE") {
47
+ reportDiagnostic(ctx, parsed.code, parsed.message, source);
48
+ }
49
+ return binding;
50
+ }
9
51
  export function parseDirectives(element, loc, ctx) {
10
52
  const directives = [];
11
53
  if (ctx) {
@@ -84,6 +126,15 @@ function parseMetaValue(raw, typeFqn, file, loc) {
84
126
  if (raw.startsWith("${") && raw.endsWith("}")) {
85
127
  return expressionFromRaw(raw, loc);
86
128
  }
129
+ const trimmed = raw.trim();
130
+ const looksLikeJson = trimmed.startsWith("[") || trimmed.startsWith("{");
131
+ if (!looksLikeJson && containsUnescapedInterpolation(raw)) {
132
+ return {
133
+ kind: "interpolated",
134
+ raw,
135
+ source: loc,
136
+ };
137
+ }
87
138
  return {
88
139
  kind: "literal",
89
140
  value: raw,
@@ -1 +1 @@
1
- {"version":3,"file":"directives.js","sourceRoot":"","sources":["../../src/map/directives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directives.js","sourceRoot":"","sources":["../../src/map/directives.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"map-block.d.ts","sourceRoot":"","sources":["../../src/map/map-block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,eAAe,EAKf,UAAU,EAiBX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAynCjE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,GAAG,eAAe,CAE3E;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,WAAW,GAAE,UAAU,EAAO,GAC7B,eAAe,CAGjB"}
1
+ {"version":3,"file":"map-block.d.ts","sourceRoot":"","sources":["../../src/map/map-block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,eAAe,EAKf,UAAU,EAkBX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAmzCjE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,GAAG,eAAe,CAE3E;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,WAAW,GAAE,UAAU,EAAO,GAC7B,eAAe,CAGjB"}