@blockml/parser 0.9.4 → 0.9.6

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 (120) hide show
  1. package/blocks/org/blockml/bml/compiler/parser/Library.bml +19 -26
  2. package/blocks/org/blockml/bml/compiler/parser/ParserType.bml +16 -20
  3. package/blocks/org/blockml/bml/compiler/parser/README.bml +14 -21
  4. package/blocks/org/blockml/bml/compiler/parser/capability/AssertBlockRoot.bml +23 -21
  5. package/blocks/org/blockml/bml/compiler/parser/capability/BuildSubBlockIndex.bml +19 -20
  6. package/blocks/org/blockml/bml/compiler/parser/capability/CollectLeadingComments.bml +22 -22
  7. package/blocks/org/blockml/bml/compiler/parser/capability/CollectTrailingComments.bml +22 -22
  8. package/blocks/org/blockml/bml/compiler/parser/capability/ContainsUnescapedInterpolation.bml +26 -21
  9. package/blocks/org/blockml/bml/compiler/parser/capability/CreateMapContext.bml +28 -24
  10. package/blocks/org/blockml/bml/compiler/parser/capability/DetectFormat.bml +19 -21
  11. package/blocks/org/blockml/bml/compiler/parser/capability/DocumentElement.bml +19 -20
  12. package/blocks/org/blockml/bml/compiler/parser/capability/ElementChildren.bml +19 -20
  13. package/blocks/org/blockml/bml/compiler/parser/capability/ElementLocalName.bml +19 -20
  14. package/blocks/org/blockml/bml/compiler/parser/capability/ElementPrefix.bml +19 -20
  15. package/blocks/org/blockml/bml/compiler/parser/capability/ElementSourceLoc.bml +25 -22
  16. package/blocks/org/blockml/bml/compiler/parser/capability/ElementStartTagIsSelfClosing.bml +23 -22
  17. package/blocks/org/blockml/bml/compiler/parser/capability/ExpressionFromRaw.bml +22 -21
  18. package/blocks/org/blockml/bml/compiler/parser/capability/ExtractNamespaceBindings.bml +20 -21
  19. package/blocks/org/blockml/bml/compiler/parser/capability/FqnToQName.bml +22 -21
  20. package/blocks/org/blockml/bml/compiler/parser/capability/GetAttribute.bml +22 -21
  21. package/blocks/org/blockml/bml/compiler/parser/capability/GetCharacterData.bml +19 -20
  22. package/blocks/org/blockml/bml/compiler/parser/capability/GetParseErrors.bml +19 -20
  23. package/blocks/org/blockml/bml/compiler/parser/capability/HasBmlSemanticQNameBindings.bml +19 -20
  24. package/blocks/org/blockml/bml/compiler/parser/capability/InferCardinality.bml +19 -20
  25. package/blocks/org/blockml/bml/compiler/parser/capability/IsBooleanLiteral.bml +19 -20
  26. package/blocks/org/blockml/bml/compiler/parser/capability/IsCData.bml +19 -20
  27. package/blocks/org/blockml/bml/compiler/parser/capability/IsComment.bml +19 -20
  28. package/blocks/org/blockml/bml/compiler/parser/capability/IsDocumentRootLocalName.bml +57 -0
  29. package/blocks/org/blockml/bml/compiler/parser/capability/IsElement.bml +19 -20
  30. package/blocks/org/blockml/bml/compiler/parser/capability/IsTextNode.bml +19 -20
  31. package/blocks/org/blockml/bml/compiler/parser/capability/IsTypeReferenceEntitySugar.bml +19 -20
  32. package/blocks/org/blockml/bml/compiler/parser/capability/MapBlock.bml +22 -22
  33. package/blocks/org/blockml/bml/compiler/parser/capability/MapBlockInstanceNode.bml +28 -21
  34. package/blocks/org/blockml/bml/compiler/parser/capability/MapCompositionTemplate.bml +22 -21
  35. package/blocks/org/blockml/bml/compiler/parser/capability/MapDocumentBlock.bml +25 -23
  36. package/blocks/org/blockml/bml/compiler/parser/capability/MapTypeReferenceEntityInstance.bml +22 -21
  37. package/blocks/org/blockml/bml/compiler/parser/capability/MergeSourceInfo.bml +25 -22
  38. package/blocks/org/blockml/bml/compiler/parser/capability/NormalizeBooleanValue.bml +19 -20
  39. package/blocks/org/blockml/bml/compiler/parser/capability/Parse.bml +22 -22
  40. package/blocks/org/blockml/bml/compiler/parser/capability/ParseBmlMeta.bml +19 -20
  41. package/blocks/org/blockml/bml/compiler/parser/capability/ParseBooleanAttribute.bml +19 -20
  42. package/blocks/org/blockml/bml/compiler/parser/capability/ParseDirectives.bml +23 -23
  43. package/blocks/org/blockml/bml/compiler/parser/capability/ParseGenericArgumentList.bml +23 -23
  44. package/blocks/org/blockml/bml/compiler/parser/capability/ParseGenericsBinding.bml +23 -23
  45. package/blocks/org/blockml/bml/compiler/parser/capability/ParseMemberValue.bml +37 -27
  46. package/blocks/org/blockml/bml/compiler/parser/capability/ParseTypeExpression.bml +25 -23
  47. package/blocks/org/blockml/bml/compiler/parser/capability/ParseVisibilityFromName.bml +19 -21
  48. package/blocks/org/blockml/bml/compiler/parser/capability/ParseXmlDom.bml +22 -22
  49. package/blocks/org/blockml/bml/compiler/parser/capability/ResolveBlockReference.bml +25 -23
  50. package/blocks/org/blockml/bml/compiler/parser/capability/ResolvePrefix.bml +22 -21
  51. package/blocks/org/blockml/bml/compiler/parser/capability/ResolveTypeName.bml +25 -23
  52. package/blocks/org/blockml/bml/compiler/parser/capability/SourceLoc.bml +25 -22
  53. package/blocks/org/blockml/bml/compiler/parser/capability/SplitQName.bml +19 -20
  54. package/blocks/org/blockml/bml/compiler/parser/capability/TrimText.bml +18 -21
  55. package/blocks/org/blockml/bml/compiler/parser/capability/TypeExpressionToString.bml +19 -20
  56. package/blocks/org/blockml/bml/compiler/parser/capability/VisibilityPrefix.bml +19 -20
  57. package/blocks/org/blockml/bml/compiler/parser/capability/XmlTriviaFromElement.bml +19 -21
  58. package/blocks/org/blockml/bml/compiler/parser/config/MapTimeDiagnosticCodes.bml +16 -19
  59. package/blocks/org/blockml/bml/compiler/parser/config/ParserConstants.bml +25 -22
  60. package/blocks/org/blockml/bml/compiler/parser/documentation/ArchitectureOverview.bml +21 -23
  61. package/blocks/org/blockml/bml/compiler/parser/documentation/AttributeClassification.bml +18 -23
  62. package/blocks/org/blockml/bml/compiler/parser/documentation/BlockMetadataMapping.bml +23 -21
  63. package/blocks/org/blockml/bml/compiler/parser/documentation/DesignDecisions.bml +16 -21
  64. package/blocks/org/blockml/bml/compiler/parser/documentation/Diagnostics.bml +25 -24
  65. package/blocks/org/blockml/bml/compiler/parser/documentation/ExpressionCapture.bml +20 -23
  66. package/blocks/org/blockml/bml/compiler/parser/documentation/Introduction.bml +17 -22
  67. package/blocks/org/blockml/bml/compiler/parser/documentation/LayerSeparation.bml +19 -24
  68. package/blocks/org/blockml/bml/compiler/parser/documentation/MappingPrinciples.bml +16 -21
  69. package/blocks/org/blockml/bml/compiler/parser/documentation/MemberMapping.bml +30 -21
  70. package/blocks/org/blockml/bml/compiler/parser/documentation/MemberMappingOrder.bml +16 -21
  71. package/blocks/org/blockml/bml/compiler/parser/documentation/PackageOwnership.bml +17 -22
  72. package/blocks/org/blockml/bml/compiler/parser/documentation/PublicApi.bml +19 -22
  73. package/blocks/org/blockml/bml/compiler/parser/documentation/RoundtripContract.bml +16 -21
  74. package/blocks/org/blockml/bml/compiler/parser/documentation/ScopeExclusions.bml +16 -21
  75. package/blocks/org/blockml/bml/compiler/parser/documentation/SingleFileScope.bml +16 -21
  76. package/blocks/org/blockml/bml/compiler/parser/documentation/StructuralGrammar.bml +18 -23
  77. package/blocks/org/blockml/bml/compiler/parser/documentation/TypeDescriptorParsing.bml +15 -20
  78. package/blocks/org/blockml/bml/compiler/parser/documentation/V1Scope.bml +18 -21
  79. package/blocks/org/blockml/bml/compiler/parser/documentation/XmlCommentsParse.bml +18 -21
  80. package/blocks/org/blockml/bml/compiler/parser/map/BmlMeta.bml +25 -22
  81. package/blocks/org/blockml/bml/compiler/parser/map/CharacterData.bml +19 -20
  82. package/blocks/org/blockml/bml/compiler/parser/map/MapContext.bml +40 -27
  83. package/blocks/org/blockml/bml/compiler/parser/map/MapContextOptions.bml +31 -24
  84. package/blocks/org/blockml/bml/compiler/parser/map/QNameParts.bml +19 -20
  85. package/blocks/org/blockml/bml/compiler/parser/map/VisibilityParse.bml +19 -20
  86. package/blocks/org/blockml/bml/compiler/parser/map/XmlDomNode.bml +13 -17
  87. package/dist/index.d.ts +2 -0
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +2 -0
  90. package/dist/index.js.map +1 -1
  91. package/dist/map/directives.d.ts.map +1 -1
  92. package/dist/map/directives.js +2 -2
  93. package/dist/map/directives.js.map +1 -1
  94. package/dist/map/interpolation-escape.d.ts +11 -0
  95. package/dist/map/interpolation-escape.d.ts.map +1 -0
  96. package/dist/map/interpolation-escape.js +87 -0
  97. package/dist/map/interpolation-escape.js.map +1 -0
  98. package/dist/map/map-block.d.ts.map +1 -1
  99. package/dist/map/map-block.js +102 -6
  100. package/dist/map/map-block.js.map +1 -1
  101. package/dist/map/map-composition.d.ts +2 -2
  102. package/dist/map/map-composition.d.ts.map +1 -1
  103. package/dist/map/map-composition.js +42 -5
  104. package/dist/map/map-composition.js.map +1 -1
  105. package/dist/map/member-value.d.ts +1 -1
  106. package/dist/map/member-value.d.ts.map +1 -1
  107. package/dist/map/member-value.js +4 -11
  108. package/dist/map/member-value.js.map +1 -1
  109. package/dist/map/structural.d.ts +1 -0
  110. package/dist/map/structural.d.ts.map +1 -1
  111. package/dist/map/structural.js +3 -0
  112. package/dist/map/structural.js.map +1 -1
  113. package/dist/pipeline/namespaces.d.ts.map +1 -1
  114. package/dist/pipeline/namespaces.js +3 -0
  115. package/dist/pipeline/namespaces.js.map +1 -1
  116. package/dist/pipeline/root-type.d.ts +3 -0
  117. package/dist/pipeline/root-type.d.ts.map +1 -1
  118. package/dist/pipeline/root-type.js +16 -3
  119. package/dist/pipeline/root-type.js.map +1 -1
  120. package/package.json +3 -3
@@ -1,12 +1,6 @@
1
- <!--
2
- Parser Documentation — RoundtripContract
3
- FQN: org.blockml.bml.compiler.parser.documentation.RoundtripContract
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
- "
1
+ <!--Parser Documentation — RoundtripContract
2
+ FQN: org.blockml.bml.compiler.parser.documentation.RoundtripContract-->
3
+ <pardocumentation:RoundtripContract xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -30,26 +24,27 @@
30
24
  xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
31
25
  xmlns:doc="org.blockml.bml.documentation">
32
26
 
33
- <name>RoundtripContract</name>
34
- <type>pardocumentation:RoundtripContract</type>
35
- <baseType>core:Documentation</baseType>
36
- <is>Parse-side roundtrip obligations (B10/B11/B13/B20)</is>
37
-
38
- <documentation>Phase-A gate: bomEquals(stripProvenance(parse(serialize(parse(f)))), parse(f)).
27
+ <baseType>
28
+ core:Documentation
29
+ </baseType>
30
+ <is>
31
+ Parse-side roundtrip obligations (B10/B11/B13/B20)
32
+ </is>
33
+ <documentation>
34
+ Phase-A gate: bomEquals(stripProvenance(parse(serialize(parse(f)))), parse(f)).
39
35
  Shared definition in @blockml/bom (B20).
40
-
36
+
41
37
  Parser obligations:
42
38
  • Preserve semantic content for serializer re-emit
43
39
  • Store xmlRendering, authoredPlacement, authoredCharacterDataForm, namespaceBindings
44
40
  • Do NOT require storing formatting whitespace (B13)
45
41
  • Single-file roundtrip tests do not require TypeRegistry bootstrap
46
-
47
- XML byte fidelity NOT a gate — see @blockml/serializer RoundtripContract.</documentation>
48
-
42
+
43
+ XML byte fidelity NOT a gate — see @blockml/serializer RoundtripContract.
44
+ </documentation>
49
45
  <references>
50
46
  <see type="bomcap:BomEquals" relation="SeeAlso" />
51
47
  <see type="serdocumentation:RoundtripContract" relation="SeeAlso" />
52
48
  <see type="pardocumentation:Diagnostics" relation="ReadNext" />
53
49
  </references>
54
-
55
- </block>
50
+ </pardocumentation:RoundtripContract>
@@ -1,12 +1,6 @@
1
- <!--
2
- Parser Documentation — ScopeExclusions
3
- FQN: org.blockml.bml.compiler.parser.documentation.ScopeExclusions
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
- "
1
+ <!--Parser Documentation — ScopeExclusions
2
+ FQN: org.blockml.bml.compiler.parser.documentation.ScopeExclusions-->
3
+ <pardocumentation:ScopeExclusions xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -30,13 +24,15 @@
30
24
  xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
31
25
  xmlns:doc="org.blockml.bml.documentation">
32
26
 
33
- <name>ScopeExclusions</name>
34
- <type>pardocumentation:ScopeExclusions</type>
35
- <baseType>core:Documentation</baseType>
36
- <is>Explicit out-of-scope for the parser package</is>
37
-
38
- <documentation>Out of scope for @blockml/parser:
39
-
27
+ <baseType>
28
+ core:Documentation
29
+ </baseType>
30
+ <is>
31
+ Explicit out-of-scope for the parser package
32
+ </is>
33
+ <documentation>
34
+ Out of scope for @blockml/parser:
35
+
40
36
  • BOM → BML emit — @blockml/serializer
41
37
  • Semantic validation — @blockml/validator
42
38
  • TypeRegistry bootstrap / cross-file resolve — @blockml/cli + @blockml/framework
@@ -44,11 +40,10 @@
44
40
  • Render target output — @blockml/compiler
45
41
  • parseFile, async, streaming — deferred API
46
42
  • Meta-driven mapping from Definition blocks — V2
47
-
48
- In scope: single-file BML XML → lossless BomDocument.</documentation>
49
-
43
+
44
+ In scope: single-file BML XML → lossless BomDocument.
45
+ </documentation>
50
46
  <references>
51
47
  <see type="pardocumentation:Introduction" relation="SeeAlso" />
52
48
  </references>
53
-
54
- </block>
49
+ </pardocumentation:ScopeExclusions>
@@ -1,12 +1,6 @@
1
- <!--
2
- Parser Documentation — SingleFileScope
3
- FQN: org.blockml.bml.compiler.parser.documentation.SingleFileScope
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
- "
1
+ <!--Parser Documentation — SingleFileScope
2
+ FQN: org.blockml.bml.compiler.parser.documentation.SingleFileScope-->
3
+ <pardocumentation:SingleFileScope xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -30,23 +24,24 @@
30
24
  xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
31
25
  xmlns:doc="org.blockml.bml.documentation">
32
26
 
33
- <name>SingleFileScope</name>
34
- <type>pardocumentation:SingleFileScope</type>
35
- <baseType>core:Documentation</baseType>
36
- <is>One BomDocument per parse(); external refs as strings (B5)</is>
37
-
38
- <documentation>parse() produces exactly one BomDocument per invocation.
39
-
27
+ <baseType>
28
+ core:Documentation
29
+ </baseType>
30
+ <is>
31
+ One BomDocument per parse(); external refs as strings (B5)
32
+ </is>
33
+ <documentation>
34
+ parse() produces exactly one BomDocument per invocation.
35
+
40
36
  Cross-file references stored in authored form:
41
37
  • type/baseType FQNs as resolved strings
42
38
  • Preset refs as FQN::id strings (unmerged)
43
39
  • bml:version on instances — no registry lookup at parse time
44
-
40
+
45
41
  TypeRegistry bootstrap, effective member resolution, cross-file validation →
46
- @blockml/cli orchestrator + @blockml/framework utilities + @blockml/validator.</documentation>
47
-
42
+ @blockml/cli orchestrator + @blockml/framework utilities + @blockml/validator.
43
+ </documentation>
48
44
  <references>
49
45
  <see type="pardocumentation:DesignDecisions" relation="ReadNext" />
50
46
  </references>
51
-
52
- </block>
47
+ </pardocumentation:SingleFileScope>
@@ -1,12 +1,6 @@
1
- <!--
2
- Parser Documentation — StructuralGrammar
3
- FQN: org.blockml.bml.compiler.parser.documentation.StructuralGrammar
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
- "
1
+ <!--Parser Documentation — StructuralGrammar
2
+ FQN: org.blockml.bml.compiler.parser.documentation.StructuralGrammar-->
3
+ <pardocumentation:StructuralGrammar xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -30,38 +24,39 @@
30
24
  xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
31
25
  xmlns:doc="org.blockml.bml.documentation">
32
26
 
33
- <name>StructuralGrammar</name>
34
- <type>pardocumentation:StructuralGrammar</type>
35
- <baseType>core:Documentation</baseType>
36
- <is>Closed root vocabulary and preserve-on-error for structural BML errors</is>
37
-
38
- <documentation>A document is valid BlockML if it is well-formed XML, structurally conforms
27
+ <baseType>
28
+ core:Documentation
29
+ </baseType>
30
+ <is>
31
+ Closed root vocabulary and preserve-on-error for structural BML errors
32
+ </is>
33
+ <documentation>
34
+ A document is valid BlockML if it is well-formed XML, structurally conforms
39
35
  to the BlockML definitions, and passes semantic validation against a complete registry.
40
36
  XSD is not part of this definition.
41
-
37
+
42
38
  Error classes: XML Syntax Error (malformed XML; document may be null);
43
39
  Structural BML Error (unknown Gerüst tag/attribute/directive — this package);
44
40
  Semantic BML Error (unknown type/member/library — @blockml/validator).
45
-
41
+
46
42
  Root children are closed: only identity and container names from the effective
47
43
  Block / document grammar (name, type, baseType, properties, aggregations, …).
48
44
  Direct aggregations at root are not allowed. User content lives only inside
49
45
  predefined containers and members.
50
-
46
+
51
47
  Preserve-on-error: invalid authored constructs that can be represented are stored
52
48
  as unknownElements / unknownAttributes residuals. Diagnostics MUST NOT require
53
49
  destructive recovery. An error invalidates validity, not the whole BOM.
54
-
50
+
55
51
  Definition/grammar nodes: unknown children/attributes → BML_UNKNOWN_ELEMENT /
56
52
  BML_UNKNOWN_ATTRIBUTE. Unknown bml:* → BML_UNKNOWN_DIRECTIVE.
57
53
  Non-whitespace text on element-only grammar nodes → BML_UNEXPECTED_TEXT.
58
54
  Formatting whitespace is ignored (B13). Character-data hosts keep text
59
55
  (name, is, documentation, value, property host text, …).
60
- Block instances: extra attributes stay in memberValues for semantic checking.</documentation>
61
-
56
+ Block instances: extra attributes stay in memberValues for semantic checking.
57
+ </documentation>
62
58
  <references>
63
59
  <see type="pardocumentation:XmlCommentsParse" relation="ReadNext" />
64
60
  <see type="valdocumentation:ValidityContract" relation="SeeAlso" />
65
61
  </references>
66
-
67
- </block>
62
+ </pardocumentation:StructuralGrammar>
@@ -1,12 +1,6 @@
1
- <!--
2
- Parser Documentation — TypeDescriptorParsing
3
- FQN: org.blockml.bml.compiler.parser.documentation.TypeDescriptorParsing
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
- "
1
+ <!--Parser Documentation — TypeDescriptorParsing
2
+ FQN: org.blockml.bml.compiler.parser.documentation.TypeDescriptorParsing-->
3
+ <pardocumentation:TypeDescriptorParsing xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -30,24 +24,25 @@
30
24
  xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
31
25
  xmlns:doc="org.blockml.bml.documentation">
32
26
 
33
- <name>TypeDescriptorParsing</name>
34
- <type>pardocumentation:TypeDescriptorParsing</type>
35
- <baseType>core:Documentation</baseType>
36
- <is>TypeExpression parsing at map time</is>
37
-
38
- <documentation>Parse type attribute strings into BOM TypeExpression shapes (defined in @blockml/bom).
39
-
27
+ <baseType>
28
+ core:Documentation
29
+ </baseType>
30
+ <is>
31
+ TypeExpression parsing at map time
32
+ </is>
33
+ <documentation>
34
+ Parse type attribute strings into BOM TypeExpression shapes (defined in @blockml/bom).
35
+
40
36
  • Named type refs → resolved FQN via namespace bindings + implicit namespaces
41
37
  • Union (A | B), struct ({ a: T }), multiplicity, nested (T[])[], generics (including unions as arguments), self refs
42
38
  • Ungrouped stacked multiplicity Integer[][] → BML_INVALID_TYPE_REFERENCE
43
39
  • Boolean.True/Boolean.False preserved as type refs (B16) — not rewritten to literals
44
40
  • Boolean values normalized to lowercase (B15)
45
41
  • Failure → BML_UNKNOWN_TYPE
46
- • Anonymous struct at specialized sites; context-bound implicit namespaces per 02_mbml.md</documentation>
47
-
42
+ • Anonymous struct at specialized sites; context-bound implicit namespaces per 02_mbml.md
43
+ </documentation>
48
44
  <references>
49
45
  <see type="parcap:ParseTypeExpression" relation="Defines" />
50
46
  <see type="pardocumentation:BlockMetadataMapping" relation="ReadNext" />
51
47
  </references>
52
-
53
- </block>
48
+ </pardocumentation:TypeDescriptorParsing>
@@ -1,12 +1,6 @@
1
- <!--
2
- Parser Documentation — V1Scope
3
- FQN: org.blockml.bml.compiler.parser.documentation.V1Scope
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
- "
1
+ <!--Parser Documentation — V1Scope
2
+ FQN: org.blockml.bml.compiler.parser.documentation.V1Scope-->
3
+ <pardocumentation:V1Scope xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -30,24 +24,27 @@
30
24
  xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
31
25
  xmlns:doc="org.blockml.bml.documentation">
32
26
 
33
- <name>V1Scope</name>
34
- <type>pardocumentation:V1Scope</type>
35
- <baseType>core:Documentation</baseType>
36
- <is>Phase A parser slice and deferred features</is>
37
-
38
- <documentation><![CDATA[V1 (Phase A) parser implements:
39
- • Hardcoded BML → BOM mapper for <block> root documents
27
+ <baseType>
28
+ core:Documentation
29
+ </baseType>
30
+ <is>
31
+ Phase A parser slice and deferred features
32
+ </is>
33
+ <documentation>
34
+ <![CDATA[
35
+ V1 (Phase A) parser implements:
36
+ • Hardcoded BML → BOM mapper for document roots (<block> or type tag; doc:DocumentFormat)
40
37
  • Single-file scope (B5) — no TypeRegistry bootstrap in parse()
41
38
  • Stage 1 structural BML validation (unknown Gerüst tags/attributes/directives); no TypeRegistry semantic checks (B8: XSD not Stage 1)
42
39
  • JSON BML authoring not planned (B6)
43
40
  • Tolerant parse by default (continueOnError: true)
44
-
41
+
45
42
  Deferred: cross-file resolution, parseFile/async, streaming, parse({ validate: true }),
46
- meta-driven mapping from Definition blocks (V2).]]></documentation>
47
-
43
+ meta-driven mapping from Definition blocks (V2).
44
+ ]]>
45
+ </documentation>
48
46
  <references>
49
47
  <see type="pardocumentation:PublicApi" relation="ReadNext" />
50
48
  <see type="pardocumentation:SingleFileScope" relation="SeeAlso" />
51
49
  </references>
52
-
53
- </block>
50
+ </pardocumentation:V1Scope>
@@ -1,12 +1,6 @@
1
- <!--
2
- Parser Documentation — XmlCommentsParse
3
- FQN: org.blockml.bml.compiler.parser.documentation.XmlCommentsParse
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
- "
1
+ <!--Parser Documentation — XmlCommentsParse
2
+ FQN: org.blockml.bml.compiler.parser.documentation.XmlCommentsParse-->
3
+ <pardocumentation:XmlCommentsParse xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -30,24 +24,27 @@
30
24
  xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
31
25
  xmlns:doc="org.blockml.bml.documentation">
32
26
 
33
- <name>XmlCommentsParse</name>
34
- <type>pardocumentation:XmlCommentsParse</type>
35
- <baseType>core:Documentation</baseType>
36
- <is>Comment binding algorithm (B11 parse side)</is>
37
-
38
- <documentation><![CDATA[Cross-ref: org.blockml.bml.bom.documentation.XmlComments for Urmodell storage model.
39
-
27
+ <baseType>
28
+ core:Documentation
29
+ </baseType>
30
+ <is>
31
+ Comment binding algorithm (B11 parse side)
32
+ </is>
33
+ <documentation>
34
+ <![CDATA[
35
+ Cross-ref: org.blockml.bml.bom.documentation.XmlComments for Urmodell storage model.
36
+
40
37
  Parse algorithm:
41
38
  • pendingLeading comments → bind to next element as leadingComments
42
39
  • Comments after element end tag → trailingComments on that element
43
40
  • Storage: xmlTrivia on elements, memberSectionTrivia, metadataTrivia
44
-
41
+
45
42
  Comment bodies only — without <!-- / -->. Whitespace/layout not stored (B13).
46
- Re-emit rules (B22) → @blockml/serializer.]]></documentation>
47
-
43
+ Re-emit rules (B22) → @blockml/serializer.
44
+ ]]>
45
+ </documentation>
48
46
  <references>
49
47
  <see type="bomdocumentation:XmlComments" relation="SeeAlso" />
50
48
  <see type="pardocumentation:TypeDescriptorParsing" relation="ReadNext" />
51
49
  </references>
52
-
53
- </block>
50
+ </pardocumentation:XmlCommentsParse>
@@ -1,12 +1,6 @@
1
- <!--
2
- Parser BmlMeta
3
- FQN: org.blockml.bml.compiler.parser.map.BmlMeta
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
- "
1
+ <!--Parser — BmlMeta
2
+ FQN: org.blockml.bml.compiler.parser.map.BmlMeta-->
3
+ <parmap:BmlMeta xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -29,26 +23,35 @@
29
23
  xmlns:serdocumentation="org.blockml.bml.compiler.serializer.documentation"
30
24
  xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
31
25
 
32
- <name>BmlMeta</name>
33
- <type>parmap:BmlMeta</type>
34
- <baseType>parser:ParserType</baseType>
35
- <is>Parsed bml:id/version/bean/scope on a BlockInstance</is>
36
-
37
- <documentation>BML type gap: stands for the object returned by parseBmlMeta() (packages/parser/src/map/directives.ts).</documentation>
38
-
26
+ <baseType>
27
+ parser:ParserType
28
+ </baseType>
29
+ <is>
30
+ Parsed bml:id/version/bean/scope on a BlockInstance
31
+ </is>
32
+ <documentation>
33
+ BML type gap: stands for the object returned by parseBmlMeta() (packages/parser/src/map/directives.ts).
34
+ </documentation>
39
35
  <properties>
40
36
  <id type="bomvalue:MemberValue">
41
- <documentation>id. TS type: bomvalue:MemberValue. (optional)</documentation>
37
+ <documentation>
38
+ id. TS type: bomvalue:MemberValue. (optional)
39
+ </documentation>
42
40
  </id>
43
41
  <version type="bomvalue:MemberValue">
44
- <documentation>version. TS type: bomvalue:MemberValue. (optional)</documentation>
42
+ <documentation>
43
+ version. TS type: bomvalue:MemberValue. (optional)
44
+ </documentation>
45
45
  </version>
46
46
  <bean type="bomvalue:MemberValue">
47
- <documentation>bean. TS type: bomvalue:MemberValue. (optional)</documentation>
47
+ <documentation>
48
+ bean. TS type: bomvalue:MemberValue. (optional)
49
+ </documentation>
48
50
  </bean>
49
51
  <scope type="type:Text">
50
- <documentation>scope. TS type: type:Text. (optional)</documentation>
52
+ <documentation>
53
+ scope. TS type: type:Text. (optional)
54
+ </documentation>
51
55
  </scope>
52
56
  </properties>
53
-
54
- </block>
57
+ </parmap:BmlMeta>
@@ -1,12 +1,6 @@
1
- <!--
2
- Parser CharacterData
3
- FQN: org.blockml.bml.compiler.parser.map.CharacterData
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
- "
1
+ <!--Parser — CharacterData
2
+ FQN: org.blockml.bml.compiler.parser.map.CharacterData-->
3
+ <parmap:CharacterData xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -29,20 +23,25 @@
29
23
  xmlns:serdocumentation="org.blockml.bml.compiler.serializer.documentation"
30
24
  xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
31
25
 
32
- <name>CharacterData</name>
33
- <type>parmap:CharacterData</type>
34
- <baseType>parser:ParserType</baseType>
35
- <is>Trimmed element character data and authored form</is>
36
-
37
- <documentation>BML type gap: stands for TypeScript { text: string; form: "text" | "cdata" } from getCharacterData() (packages/parser/src/util/xml.ts).</documentation>
38
-
26
+ <baseType>
27
+ parser:ParserType
28
+ </baseType>
29
+ <is>
30
+ Trimmed element character data and authored form
31
+ </is>
32
+ <documentation>
33
+ BML type gap: stands for TypeScript { text: string; form: "text" | "cdata" } from getCharacterData() (packages/parser/src/util/xml.ts).
34
+ </documentation>
39
35
  <properties>
40
36
  <text type="type:Text">
41
- <documentation>text. TS type: type:Text. (required)</documentation>
37
+ <documentation>
38
+ text. TS type: type:Text. (required)
39
+ </documentation>
42
40
  </text>
43
41
  <form type="bomcommon:CharacterDataForm">
44
- <documentation>form. TS type: bomcommon:CharacterDataForm. (required)</documentation>
42
+ <documentation>
43
+ form. TS type: bomcommon:CharacterDataForm. (required)
44
+ </documentation>
45
45
  </form>
46
46
  </properties>
47
-
48
- </block>
47
+ </parmap:CharacterData>
@@ -1,12 +1,6 @@
1
- <!--
2
- Parser MapContext
3
- FQN: org.blockml.bml.compiler.parser.map.MapContext
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
- "
1
+ <!--Parser — MapContext
2
+ FQN: org.blockml.bml.compiler.parser.map.MapContext-->
3
+ <parmap:MapContext xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -29,41 +23,60 @@
29
23
  xmlns:serdocumentation="org.blockml.bml.compiler.serializer.documentation"
30
24
  xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
31
25
 
32
- <name>MapContext</name>
33
- <type>parmap:MapContext</type>
34
- <baseType>parser:ParserType</baseType>
35
- <is>Per-parse mapping configuration and namespace context</is>
36
-
37
- <documentation>Created by createMapContext(). Passed through map/* modules during step [5].</documentation>
38
-
26
+ <baseType>
27
+ parser:ParserType
28
+ </baseType>
29
+ <is>
30
+ Per-parse mapping configuration and namespace context
31
+ </is>
32
+ <documentation>
33
+ Created by createMapContext(). Passed through map/* modules during step [5].
34
+ </documentation>
39
35
  <properties>
40
36
  <filePath type="type:Text">
41
- <documentation>filePath. TS type: type:Text. (required)</documentation>
37
+ <documentation>
38
+ filePath. TS type: type:Text. (required)
39
+ </documentation>
42
40
  </filePath>
43
41
  <source type="type:Text">
44
- <documentation>Original source string. (required)</documentation>
42
+ <documentation>
43
+ Original source string. (required)
44
+ </documentation>
45
45
  </source>
46
46
  <bindings type="type:Text">
47
- <documentation>Record&lt;string, string> namespace bindings. (required)</documentation>
47
+ <documentation>
48
+ Record&lt;string, string> namespace bindings. (required)
49
+ </documentation>
48
50
  </bindings>
49
51
  <subBlockIndex type="type:Text">
50
- <documentation>Map&lt;string, string> sub-block lookup. (required)</documentation>
52
+ <documentation>
53
+ Map&lt;string, string> sub-block lookup. (required)
54
+ </documentation>
51
55
  </subBlockIndex>
52
56
  <parentBlockType type="type:Text">
53
- <documentation>Enclosing block type FQN when nested. (optional)</documentation>
57
+ <documentation>
58
+ Enclosing block type FQN when nested. (optional)
59
+ </documentation>
54
60
  </parentBlockType>
55
61
  <isRoot type="type:Boolean">
56
- <documentation>isRoot. TS type: type:Boolean. (required)</documentation>
62
+ <documentation>
63
+ isRoot. TS type: type:Boolean. (required)
64
+ </documentation>
57
65
  </isRoot>
58
66
  <isEmbedded type="type:Boolean">
59
- <documentation>isEmbedded. TS type: type:Boolean. (required)</documentation>
67
+ <documentation>
68
+ isEmbedded. TS type: type:Boolean. (required)
69
+ </documentation>
60
70
  </isEmbedded>
61
71
  <diagnostics type="bomcommon:Diagnostic[]">
62
- <documentation>Shared map-time diagnostics; structural errors append here without aborting. (required)</documentation>
72
+ <documentation>
73
+ Shared map-time diagnostics; structural errors append here without aborting. (required)
74
+ </documentation>
63
75
  </diagnostics>
64
76
  <parseValue type="type:Text">
65
- <documentation>Optional host parseValue hook from ParseOptions. (optional)</documentation>
77
+ <documentation>
78
+ Optional host parseValue hook from ParseOptions. (optional)
79
+ </documentation>
66
80
  </parseValue>
67
81
  </properties>
68
-
69
- </block>
82
+ </parmap:MapContext>