@blockml/parser 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/blocks/org/blockml/bml/compiler/parser/Library.bml +4 -1
  2. package/blocks/org/blockml/bml/compiler/parser/capability/DetectFormat.bml +1 -1
  3. package/blocks/org/blockml/bml/compiler/parser/capability/ElementStartTagIsSelfClosing.bml +52 -0
  4. package/blocks/org/blockml/bml/compiler/parser/capability/MapCompositionTemplate.bml +1 -1
  5. package/blocks/org/blockml/bml/compiler/parser/capability/MapDocumentBlock.bml +1 -1
  6. package/blocks/org/blockml/bml/compiler/parser/config/MapTimeDiagnosticCodes.bml +1 -1
  7. package/blocks/org/blockml/bml/compiler/parser/documentation/ArchitectureOverview.bml +6 -6
  8. package/blocks/org/blockml/bml/compiler/parser/documentation/AttributeClassification.bml +2 -2
  9. package/blocks/org/blockml/bml/compiler/parser/documentation/BlockMetadataMapping.bml +4 -4
  10. package/blocks/org/blockml/bml/compiler/parser/documentation/DesignDecisions.bml +20 -16
  11. package/blocks/org/blockml/bml/compiler/parser/documentation/Diagnostics.bml +9 -7
  12. package/blocks/org/blockml/bml/compiler/parser/documentation/ExpressionCapture.bml +2 -2
  13. package/blocks/org/blockml/bml/compiler/parser/documentation/Introduction.bml +2 -2
  14. package/blocks/org/blockml/bml/compiler/parser/documentation/LayerSeparation.bml +2 -2
  15. package/blocks/org/blockml/bml/compiler/parser/documentation/MappingPrinciples.bml +2 -2
  16. package/blocks/org/blockml/bml/compiler/parser/documentation/MemberMapping.bml +19 -8
  17. package/blocks/org/blockml/bml/compiler/parser/documentation/MemberMappingOrder.bml +1 -1
  18. package/blocks/org/blockml/bml/compiler/parser/documentation/PackageOwnership.bml +2 -2
  19. package/blocks/org/blockml/bml/compiler/parser/documentation/PublicApi.bml +7 -7
  20. package/blocks/org/blockml/bml/compiler/parser/documentation/RoundtripContract.bml +3 -3
  21. package/blocks/org/blockml/bml/compiler/parser/documentation/ScopeExclusions.bml +1 -1
  22. package/blocks/org/blockml/bml/compiler/parser/documentation/SingleFileScope.bml +1 -1
  23. package/blocks/org/blockml/bml/compiler/parser/documentation/StructuralGrammar.bml +2 -2
  24. package/blocks/org/blockml/bml/compiler/parser/documentation/TypeDescriptorParsing.bml +2 -2
  25. package/blocks/org/blockml/bml/compiler/parser/documentation/V1Scope.bml +5 -5
  26. package/blocks/org/blockml/bml/compiler/parser/documentation/XmlCommentsParse.bml +5 -5
  27. package/dist/map/map-block.d.ts.map +1 -1
  28. package/dist/map/map-block.js +104 -28
  29. package/dist/map/map-block.js.map +1 -1
  30. package/dist/map/map-composition.d.ts.map +1 -1
  31. package/dist/map/map-composition.js +27 -18
  32. package/dist/map/map-composition.js.map +1 -1
  33. package/dist/map/structural.d.ts +2 -0
  34. package/dist/map/structural.d.ts.map +1 -1
  35. package/dist/map/structural.js +6 -0
  36. package/dist/map/structural.js.map +1 -1
  37. package/dist/util/qname.d.ts +6 -0
  38. package/dist/util/qname.d.ts.map +1 -1
  39. package/dist/util/qname.js +9 -0
  40. package/dist/util/qname.js.map +1 -1
  41. package/package.json +3 -3
@@ -35,13 +35,15 @@
35
35
  <is>The BlockML Parser compiler package library catalog</is>
36
36
 
37
37
  <documentation>
38
+ # The BlockML Parser compiler package library catalog
39
+
38
40
  Canonical parser specification for BlockML — BML → BOM mapping algorithm,
39
41
  Stage 1 pipeline [1]–[5], and parse() contract. TypeScript in packages/parser/src/
40
42
  implements this library. Input/output Urmodell types live in org.blockml.bml.bom.*
41
43
  (@blockml/bom). Membership is defined exclusively by this blocks list.
42
44
  </documentation>
43
45
 
44
- <version>0.8.0</version>
46
+ <version>0.9.0</version>
45
47
 
46
48
  <language>
47
49
  <English />
@@ -113,6 +115,7 @@
113
115
  <parcap:FqnToQName />
114
116
  <parcap:SourceLoc />
115
117
  <parcap:ElementSourceLoc />
118
+ <parcap:ElementStartTagIsSelfClosing />
116
119
  <parcap:IsElement />
117
120
  <parcap:IsComment />
118
121
  <parcap:IsTextNode />
@@ -34,7 +34,7 @@
34
34
  <baseType>core:Capability</baseType>
35
35
  <is>Format detector — step [1] (B24)</is>
36
36
 
37
- <documentation>Strip UTF-8 BOM; detect xml when first non-whitespace is '&lt;'.</documentation>
37
+ <documentation><![CDATA[Strip UTF-8 BOM; detect xml when first non-whitespace is '<'.]]></documentation>
38
38
 
39
39
  <references>
40
40
  <see type="pardocumentation:ArchitectureOverview" relation="SeeAlso" />
@@ -0,0 +1,52 @@
1
+ <!--
2
+ Parser Capability — ElementStartTagIsSelfClosing
3
+ FQN: org.blockml.bml.compiler.parser.capability.ElementStartTagIsSelfClosing
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>ElementStartTagIsSelfClosing</name>
33
+ <type>parcap:ElementStartTagIsSelfClosing</type>
34
+ <baseType>core:Capability</baseType>
35
+ <is>Detect whether an element's start tag is authored as self-closing</is>
36
+
37
+ <documentation>True when the start tag ends with slash-greater-than. Used to record
38
+ authoredEmptyElementForm on empty see references.</documentation>
39
+
40
+ <properties>
41
+ <source type="type:Text">
42
+ <documentation>source. TS type: type:Text. (required)</documentation>
43
+ </source>
44
+ <element type="parmap:XmlDomNode">
45
+ <documentation>element. TS type: parmap:XmlDomNode. (required)</documentation>
46
+ </element>
47
+ <result type="type:Boolean">
48
+ <documentation>result. TS type: type:Boolean. (required)</documentation>
49
+ </result>
50
+ </properties>
51
+
52
+ </block>
@@ -34,7 +34,7 @@
34
34
  <baseType>core:Capability</baseType>
35
35
  <is>Map &lt;composition> element to CompositionTemplate</is>
36
36
 
37
- <documentation>Map &lt;composition> element to CompositionTemplate</documentation>
37
+ <documentation><![CDATA[Map <composition> element to CompositionTemplate]]></documentation>
38
38
 
39
39
  <properties>
40
40
  <element type="parmap:XmlDomNode">
@@ -34,7 +34,7 @@
34
34
  <baseType>core:Capability</baseType>
35
35
  <is>Map root &lt;block> to BomDocument — step [5] entry</is>
36
36
 
37
- <documentation>Map root &lt;block> to BomDocument — step [5] entry</documentation>
37
+ <documentation><![CDATA[Map root <block> to BomDocument — step [5] entry]]></documentation>
38
38
 
39
39
  <references>
40
40
  <see type="parcap:MapBlock" relation="SeeAlso" />
@@ -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
 
@@ -35,12 +35,12 @@
35
35
  <baseType>core:Documentation</baseType>
36
36
  <is>Parse pipeline [1]–[5] and module decomposition</is>
37
37
 
38
- <documentation>Entry point: parse(source, options?) → ParseResult (B26).
38
+ <documentation><![CDATA[Entry point: parse(source, options?) → ParseResult (B26).
39
39
 
40
40
  Stage 1 pipeline:
41
- [1] Format detect (B24) — detectFormat(); strip UTF-8 BOM; first '&lt;' → xml
41
+ [1] Format detect (B24) — detectFormat(); strip UTF-8 BOM; first '<' → xml
42
42
  [2] XML DOM (B18) — parseXmlDom() via @xmldom/xmldom
43
- [3] Root type resolver — assertBlockRoot(); V1: &lt;block> only
43
+ [3] Root type resolver — assertBlockRoot(); V1: <block> only
44
44
  [4] Namespace resolver — extractNamespaceBindings(), mergeSourceInfo(); FQN resolution
45
45
  [5] BML → BOM mapper — mapDocumentBlock() → BomDocument
46
46
 
@@ -56,11 +56,11 @@
56
56
  • map/type-expression.ts → parcap:ParseTypeExpression
57
57
  • map/member-value.ts → parcap:ParseMemberValue
58
58
  • map/directives.ts → parcap:ParseDirectives, ParseBmlMeta
59
- • util/* → visibility, boolean, qname, xml helpers</documentation>
59
+ • util/* → visibility, boolean, qname, xml helpers]]></documentation>
60
60
 
61
61
  <references>
62
- <see type="pardocumentation:V1Scope" relation="ReadNext"></see>
63
- <see type="parcap:Parse" relation="Defines"></see>
62
+ <see type="pardocumentation:V1Scope" relation="ReadNext" />
63
+ <see type="parcap:Parse" relation="Defines" />
64
64
  </references>
65
65
 
66
66
  </block>
@@ -54,8 +54,8 @@
54
54
  Serialize side of Rule 1 (B25 re-emit) → @blockml/serializer.</documentation>
55
55
 
56
56
  <references>
57
- <see type="pardocumentation:StructuralGrammar" relation="ReadNext"></see>
58
- <see type="parcap:ParseDirectives" relation="SeeAlso"></see>
57
+ <see type="pardocumentation:StructuralGrammar" relation="ReadNext" />
58
+ <see type="parcap:ParseDirectives" relation="SeeAlso" />
59
59
  </references>
60
60
 
61
61
  </block>
@@ -35,7 +35,7 @@
35
35
  <baseType>core:Documentation</baseType>
36
36
  <is>Block definition metadata field mapping</is>
37
37
 
38
- <documentation>Map &lt;block> child elements to BlockDefinition fields:
38
+ <documentation><![CDATA[Map <block> child elements to BlockDefinition fields:
39
39
 
40
40
  Identity: name, type, baseType, is, isNot, version, definition
41
41
  Structural: since, status, summary, documentation, abstract, final
@@ -47,11 +47,11 @@
47
47
  • authoredPlacement stored for dual element|attribute forms (D9)
48
48
  • authoredCharacterDataForm for text vs CDATA (D8)
49
49
  • TrimText on character data: common leading indent stripped, then trim (B13)
50
- • Visibility prefixes stripped → logical name + visibility (B14 parse half)</documentation>
50
+ • Visibility prefixes stripped → logical name + visibility (B14 parse half)]]></documentation>
51
51
 
52
52
  <references>
53
- <see type="pardocumentation:MemberMapping" relation="ReadNext"></see>
54
- <see type="def:BlockDefinition" relation="SeeAlso"></see>
53
+ <see type="pardocumentation:MemberMapping" relation="ReadNext" />
54
+ <see type="def:BlockDefinition" relation="SeeAlso" />
55
55
  </references>
56
56
 
57
57
  </block>
@@ -35,24 +35,28 @@
35
35
  <baseType>core:Documentation</baseType>
36
36
  <is>Normative parser design decisions</is>
37
37
 
38
- <documentation>B2: unknown bml:* → error at map (BML_UNKNOWN_DIRECTIVE); unknown instance members → validator error (BML_UNKNOWN_PROPERTY).
39
- B3: inputType/outputType TypeExpression at map time.
40
- B4: ExpressionValue.raw only; AST via core utility.
41
- B5: single-file parser scope.
42
- B6: JSON not planned.
43
- B7/B8: Phase A slice; XSD not Stage 1.
44
- B11: XML comments bound to elements (parse side).
45
- B14: strip _/__ → logical name + visibility.
46
- B15/B16: boolean values vs type refs.
47
- B18: @xmldom/xmldom for DOM.
48
- B19: redundant aggregation type map must not apply.
49
- B23: preserve xmlRendering + D6 recipe at Stage 1.
50
- B24: format detector (BOM strip, first '&lt;').
51
- B25: store xmlns:xsi + schemaLocation on SourceInfo.
52
- B26: parse() entry; types in @blockml/bom.</documentation>
38
+ <documentation><![CDATA[
39
+ # Normative parser design decisions
40
+
41
+ - B2: unknown bml:* → error at map (BML_UNKNOWN_DIRECTIVE); unknown instance members → validator error (BML_UNKNOWN_PROPERTY).
42
+ - B3: inputType/outputType TypeExpression at map time.
43
+ - B4: ExpressionValue.raw only; AST via core utility.
44
+ - B5: single-file parser scope.
45
+ - B6: JSON not planned.
46
+ - B7/B8: Phase A slice; XSD not Stage 1.
47
+ - B11: XML comments bound to elements (parse side).
48
+ - B14: strip _/__ logical name + visibility.
49
+ - B15/B16: boolean values vs type refs.
50
+ - B18: @xmldom/xmldom for DOM.
51
+ - B19: redundant aggregation type map must not apply.
52
+ - B23: preserve xmlRendering + D6 recipe at Stage 1.
53
+ - B24: format detector (BOM strip, first '<').
54
+ - B25: store xmlns:xsi + schemaLocation on SourceInfo.
55
+ - B26: parse() entry; types in @blockml/bom.
56
+ ]]></documentation>
53
57
 
54
58
  <references>
55
- <see type="pardocumentation:RoundtripContract" relation="ReadNext"></see>
59
+ <see type="pardocumentation:RoundtripContract" relation="ReadNext" />
56
60
  </references>
57
61
 
58
62
  </block>
@@ -35,11 +35,11 @@
35
35
  <baseType>core:Documentation</baseType>
36
36
  <is>Map-time and pipeline diagnostic codes</is>
37
37
 
38
- <documentation>Pipeline hard-fail codes (parse.ts):
38
+ <documentation><![CDATA[Pipeline hard-fail codes (parse.ts):
39
39
  • BML_UNSUPPORTED_FORMAT — format detect failed
40
40
  • BML_MALFORMED_XML — DOM parse error
41
41
  • BML_MISSING_ROOT — no document element
42
- • BML_INVALID_ROOT — not &lt;block> (V1)
42
+ • BML_INVALID_ROOT — not <block> (V1)
43
43
  • BML_MAP_ERROR — mapping exception
44
44
 
45
45
  Map-time codes (mapper modules):
@@ -49,19 +49,21 @@
49
49
  • BML_UNKNOWN_ELEMENT — child not in closed Block grammar (structural)
50
50
  • BML_UNKNOWN_ATTRIBUTE — attribute not allowed on a grammar node (structural)
51
51
  • BML_UNKNOWN_DIRECTIVE — unknown bml:* attribute (B2)
52
- • BML_STANDALONE_COMPOSITION — &lt;composition> not a direct child of an aggregation member
53
- BML_DUPLICATE_COMPOSITIONmore than one &lt;composition> on the same aggregation member
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
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
57
59
  (attribute value or first occurrence in the throwing element), not the document root.
58
60
 
59
61
  Host policy: whether to abort after diagnostics is orchestrator decision.
60
- Diagnostic type: org.blockml.bml.bom.common.Diagnostic.</documentation>
62
+ Diagnostic type: org.blockml.bml.bom.common.Diagnostic.]]></documentation>
61
63
 
62
64
  <references>
63
- <see type="parconfig:MapTimeDiagnosticCodes" relation="Defines"></see>
64
- <see type="pardocumentation:PackageOwnership" relation="ReadNext"></see>
65
+ <see type="parconfig:MapTimeDiagnosticCodes" relation="Defines" />
66
+ <see type="pardocumentation:PackageOwnership" relation="ReadNext" />
65
67
  </references>
66
68
 
67
69
  </block>
@@ -44,8 +44,8 @@
44
44
  inputType/outputType on capabilities → TypeExpression at map time (B3).</documentation>
45
45
 
46
46
  <references>
47
- <see type="pardocumentation:SingleFileScope" relation="ReadNext"></see>
48
- <see type="parcap:ExpressionFromRaw" relation="SeeAlso"></see>
47
+ <see type="pardocumentation:SingleFileScope" relation="ReadNext" />
48
+ <see type="parcap:ExpressionFromRaw" relation="SeeAlso" />
49
49
  </references>
50
50
 
51
51
  </block>
@@ -50,8 +50,8 @@
50
50
  depend on @blockml/serializer, @blockml/validator, or TypeRegistry bootstrap.</documentation>
51
51
 
52
52
  <references>
53
- <see type="pardocumentation:LayerSeparation" relation="ReadNext"></see>
54
- <see type="bomdocumentation:Introduction" relation="SeeAlso"></see>
53
+ <see type="pardocumentation:LayerSeparation" relation="ReadNext" />
54
+ <see type="bomdocumentation:Introduction" relation="SeeAlso" />
55
55
  </references>
56
56
 
57
57
  </block>
@@ -53,8 +53,8 @@
53
53
  Parser stores ExpressionValue.raw only (B4); never writes AST to Urmodell.</documentation>
54
54
 
55
55
  <references>
56
- <see type="pardocumentation:ArchitectureOverview" relation="ReadNext"></see>
57
- <see type="bomdocumentation:LayerSeparation" relation="SeeAlso"></see>
56
+ <see type="pardocumentation:ArchitectureOverview" relation="ReadNext" />
57
+ <see type="bomdocumentation:LayerSeparation" relation="SeeAlso" />
58
58
  </references>
59
59
 
60
60
  </block>
@@ -46,8 +46,8 @@
46
46
  block rendering. Maximum authored surface: store as much as Urmodell can carry.</documentation>
47
47
 
48
48
  <references>
49
- <see type="pardocumentation:MemberMappingOrder" relation="ReadNext"></see>
50
- <see type="bomdocumentation:AbstractionPrinciple" relation="SeeAlso"></see>
49
+ <see type="pardocumentation:MemberMappingOrder" relation="ReadNext" />
50
+ <see type="bomdocumentation:AbstractionPrinciple" relation="SeeAlso" />
51
51
  </references>
52
52
 
53
53
  </block>
@@ -35,22 +35,33 @@
35
35
  <baseType>core:Documentation</baseType>
36
36
  <is>Member definition and composition mapping</is>
37
37
 
38
- <documentation>Property/aggregation/association/capability members:
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 &lt;composition> per aggregation member, as a direct child of that member
42
- (not of &lt;block>, &lt;aggregations>, or nested inside metadata). Extra copies →
43
- BML_DUPLICATE_COMPOSITION. Misplaced BML_STANDALONE_COMPOSITION.
44
- Sugar without a &lt;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
 
49
- Directives on composition: bml:each, bml:if, bml:unless, bml:with — stored unexpanded.</documentation>
60
+ Directives on composition: bml:each, bml:if, bml:unless, bml:with — stored unexpanded.]]></documentation>
50
61
 
51
62
  <references>
52
- <see type="pardocumentation:ExpressionCapture" relation="ReadNext"></see>
53
- <see type="parcap:MapBlockInstanceNode" relation="SeeAlso"></see>
63
+ <see type="pardocumentation:ExpressionCapture" relation="ReadNext" />
64
+ <see type="parcap:MapBlockInstanceNode" relation="SeeAlso" />
54
65
  </references>
55
66
 
56
67
  </block>
@@ -45,7 +45,7 @@
45
45
  Inside containers (properties/aggregations/…): filter by kind, keep BOM array order.</documentation>
46
46
 
47
47
  <references>
48
- <see type="pardocumentation:AttributeClassification" relation="ReadNext"></see>
48
+ <see type="pardocumentation:AttributeClassification" relation="ReadNext" />
49
49
  </references>
50
50
 
51
51
  </block>
@@ -48,8 +48,8 @@
48
48
  @blockml/cli — TypeRegistry bootstrap and orchestration.</documentation>
49
49
 
50
50
  <references>
51
- <see type="pardocumentation:ScopeExclusions" relation="ReadNext"></see>
52
- <see type="bomdocumentation:PackageOwnership" relation="SeeAlso"></see>
51
+ <see type="pardocumentation:ScopeExclusions" relation="ReadNext" />
52
+ <see type="bomdocumentation:PackageOwnership" relation="SeeAlso" />
53
53
  </references>
54
54
 
55
55
  </block>
@@ -35,10 +35,10 @@
35
35
  <baseType>core:Documentation</baseType>
36
36
  <is>parse() entry point (B26)</is>
37
37
 
38
- <documentation>parse(source: string, options?: ParseOptions): ParseResult
38
+ <documentation><![CDATA[parse(source: string, options?: ParseOptions): ParseResult
39
39
 
40
40
  ParseOptions (owned by @blockml/bom):
41
- • filePath — default "&lt;memory>"; written to BomDocument.source.filePath
41
+ • filePath — default "<memory>"; written to BomDocument.source.filePath
42
42
  • continueOnError — default true; keep mapping after errors when possible
43
43
 
44
44
  ParseResult (owned by @blockml/bom):
@@ -53,13 +53,13 @@
53
53
  carries a span; otherwise BML_MAP_ERROR at 1:1. continueOnError still returns
54
54
  document when possible
55
55
  • Sync only; no throw on recoverable errors
56
- • Does NOT call validator; does NOT expand directives</documentation>
56
+ • Does NOT call validator; does NOT expand directives]]></documentation>
57
57
 
58
58
  <references>
59
- <see type="bomapi:ParseOptions" relation="Defines"></see>
60
- <see type="bomapi:ParseResult" relation="Defines"></see>
61
- <see type="parcap:Parse" relation="Defines"></see>
62
- <see type="pardocumentation:MappingPrinciples" relation="ReadNext"></see>
59
+ <see type="bomapi:ParseOptions" relation="Defines" />
60
+ <see type="bomapi:ParseResult" relation="Defines" />
61
+ <see type="parcap:Parse" relation="Defines" />
62
+ <see type="pardocumentation:MappingPrinciples" relation="ReadNext" />
63
63
  </references>
64
64
 
65
65
  </block>
@@ -47,9 +47,9 @@
47
47
  XML byte fidelity NOT a gate — see @blockml/serializer RoundtripContract.</documentation>
48
48
 
49
49
  <references>
50
- <see type="bomcap:BomEquals" relation="SeeAlso"></see>
51
- <see type="serdocumentation:RoundtripContract" relation="SeeAlso"></see>
52
- <see type="pardocumentation:Diagnostics" relation="ReadNext"></see>
50
+ <see type="bomcap:BomEquals" relation="SeeAlso" />
51
+ <see type="serdocumentation:RoundtripContract" relation="SeeAlso" />
52
+ <see type="pardocumentation:Diagnostics" relation="ReadNext" />
53
53
  </references>
54
54
 
55
55
  </block>
@@ -48,7 +48,7 @@
48
48
  In scope: single-file BML XML → lossless BomDocument.</documentation>
49
49
 
50
50
  <references>
51
- <see type="pardocumentation:Introduction" relation="SeeAlso"></see>
51
+ <see type="pardocumentation:Introduction" relation="SeeAlso" />
52
52
  </references>
53
53
 
54
54
  </block>
@@ -46,7 +46,7 @@
46
46
  @blockml/cli orchestrator + @blockml/framework utilities + @blockml/validator.</documentation>
47
47
 
48
48
  <references>
49
- <see type="pardocumentation:DesignDecisions" relation="ReadNext"></see>
49
+ <see type="pardocumentation:DesignDecisions" relation="ReadNext" />
50
50
  </references>
51
51
 
52
52
  </block>
@@ -60,8 +60,8 @@
60
60
  Block instances: extra attributes stay in memberValues for semantic checking.</documentation>
61
61
 
62
62
  <references>
63
- <see type="pardocumentation:XmlCommentsParse" relation="ReadNext"></see>
64
- <see type="valdocumentation:ValidityContract" relation="SeeAlso"></see>
63
+ <see type="pardocumentation:XmlCommentsParse" relation="ReadNext" />
64
+ <see type="valdocumentation:ValidityContract" relation="SeeAlso" />
65
65
  </references>
66
66
 
67
67
  </block>
@@ -46,8 +46,8 @@
46
46
  • Anonymous struct at specialized sites; context-bound implicit namespaces per 02_mbml.md</documentation>
47
47
 
48
48
  <references>
49
- <see type="parcap:ParseTypeExpression" relation="Defines"></see>
50
- <see type="pardocumentation:BlockMetadataMapping" relation="ReadNext"></see>
49
+ <see type="parcap:ParseTypeExpression" relation="Defines" />
50
+ <see type="pardocumentation:BlockMetadataMapping" relation="ReadNext" />
51
51
  </references>
52
52
 
53
53
  </block>
@@ -35,19 +35,19 @@
35
35
  <baseType>core:Documentation</baseType>
36
36
  <is>Phase A parser slice and deferred features</is>
37
37
 
38
- <documentation>V1 (Phase A) parser implements:
39
- • Hardcoded BML → BOM mapper for &lt;block> root documents
38
+ <documentation><![CDATA[V1 (Phase A) parser implements:
39
+ • Hardcoded BML → BOM mapper for <block> root documents
40
40
  • Single-file scope (B5) — no TypeRegistry bootstrap in parse()
41
41
  • Stage 1 structural BML validation (unknown Gerüst tags/attributes/directives); no TypeRegistry semantic checks (B8: XSD not Stage 1)
42
42
  • JSON BML authoring not planned (B6)
43
43
  • Tolerant parse by default (continueOnError: true)
44
44
 
45
45
  Deferred: cross-file resolution, parseFile/async, streaming, parse({ validate: true }),
46
- meta-driven mapping from Definition blocks (V2).</documentation>
46
+ meta-driven mapping from Definition blocks (V2).]]></documentation>
47
47
 
48
48
  <references>
49
- <see type="pardocumentation:PublicApi" relation="ReadNext"></see>
50
- <see type="pardocumentation:SingleFileScope" relation="SeeAlso"></see>
49
+ <see type="pardocumentation:PublicApi" relation="ReadNext" />
50
+ <see type="pardocumentation:SingleFileScope" relation="SeeAlso" />
51
51
  </references>
52
52
 
53
53
  </block>
@@ -35,19 +35,19 @@
35
35
  <baseType>core:Documentation</baseType>
36
36
  <is>Comment binding algorithm (B11 parse side)</is>
37
37
 
38
- <documentation>Cross-ref: org.blockml.bml.bom.documentation.XmlComments for Urmodell storage model.
38
+ <documentation><![CDATA[Cross-ref: org.blockml.bml.bom.documentation.XmlComments for Urmodell storage model.
39
39
 
40
40
  Parse algorithm:
41
41
  • pendingLeading comments → bind to next element as leadingComments
42
42
  • Comments after element end tag → trailingComments on that element
43
43
  • Storage: xmlTrivia on elements, memberSectionTrivia, metadataTrivia
44
44
 
45
- Comment bodies only — without &lt;!-- / -->. Whitespace/layout not stored (B13).
46
- Re-emit rules (B22) → @blockml/serializer.</documentation>
45
+ Comment bodies only — without <!-- / -->. Whitespace/layout not stored (B13).
46
+ Re-emit rules (B22) → @blockml/serializer.]]></documentation>
47
47
 
48
48
  <references>
49
- <see type="bomdocumentation:XmlComments" relation="SeeAlso"></see>
50
- <see type="pardocumentation:TypeDescriptorParsing" relation="ReadNext"></see>
49
+ <see type="bomdocumentation:XmlComments" relation="SeeAlso" />
50
+ <see type="pardocumentation:TypeDescriptorParsing" relation="ReadNext" />
51
51
  </references>
52
52
 
53
53
  </block>
@@ -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;AA6mCjE,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;AAgtCjE,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"}