@blockml/parser 0.1.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 (139) hide show
  1. package/blocks/org/blockml/bml/compiler/parser/Library.bml +143 -0
  2. package/blocks/org/blockml/bml/compiler/parser/ParserType.bml +40 -0
  3. package/blocks/org/blockml/bml/compiler/parser/README.bml +68 -0
  4. package/blocks/org/blockml/bml/compiler/parser/capability/AssertBlockRoot.bml +45 -0
  5. package/blocks/org/blockml/bml/compiler/parser/capability/BuildSubBlockIndex.bml +43 -0
  6. package/blocks/org/blockml/bml/compiler/parser/capability/CollectLeadingComments.bml +50 -0
  7. package/blocks/org/blockml/bml/compiler/parser/capability/CollectTrailingComments.bml +50 -0
  8. package/blocks/org/blockml/bml/compiler/parser/capability/CreateMapContext.bml +56 -0
  9. package/blocks/org/blockml/bml/compiler/parser/capability/DetectFormat.bml +47 -0
  10. package/blocks/org/blockml/bml/compiler/parser/capability/DocumentElement.bml +43 -0
  11. package/blocks/org/blockml/bml/compiler/parser/capability/ElementChildren.bml +43 -0
  12. package/blocks/org/blockml/bml/compiler/parser/capability/ElementLocalName.bml +43 -0
  13. package/blocks/org/blockml/bml/compiler/parser/capability/ElementPrefix.bml +43 -0
  14. package/blocks/org/blockml/bml/compiler/parser/capability/ElementSourceLoc.bml +46 -0
  15. package/blocks/org/blockml/bml/compiler/parser/capability/ExpressionFromRaw.bml +46 -0
  16. package/blocks/org/blockml/bml/compiler/parser/capability/ExtractNamespaceBindings.bml +47 -0
  17. package/blocks/org/blockml/bml/compiler/parser/capability/FqnToQName.bml +46 -0
  18. package/blocks/org/blockml/bml/compiler/parser/capability/GetAttribute.bml +46 -0
  19. package/blocks/org/blockml/bml/compiler/parser/capability/GetCharacterData.bml +43 -0
  20. package/blocks/org/blockml/bml/compiler/parser/capability/GetParseErrors.bml +43 -0
  21. package/blocks/org/blockml/bml/compiler/parser/capability/HasBmlSemanticQNameBindings.bml +43 -0
  22. package/blocks/org/blockml/bml/compiler/parser/capability/InferCardinality.bml +43 -0
  23. package/blocks/org/blockml/bml/compiler/parser/capability/IsBooleanLiteral.bml +43 -0
  24. package/blocks/org/blockml/bml/compiler/parser/capability/IsCData.bml +43 -0
  25. package/blocks/org/blockml/bml/compiler/parser/capability/IsComment.bml +43 -0
  26. package/blocks/org/blockml/bml/compiler/parser/capability/IsElement.bml +43 -0
  27. package/blocks/org/blockml/bml/compiler/parser/capability/IsTextNode.bml +43 -0
  28. package/blocks/org/blockml/bml/compiler/parser/capability/IsTypeReferenceEntitySugar.bml +43 -0
  29. package/blocks/org/blockml/bml/compiler/parser/capability/MapBlock.bml +50 -0
  30. package/blocks/org/blockml/bml/compiler/parser/capability/MapBlockInstanceNode.bml +46 -0
  31. package/blocks/org/blockml/bml/compiler/parser/capability/MapCompositionTemplate.bml +46 -0
  32. package/blocks/org/blockml/bml/compiler/parser/capability/MapDocumentBlock.bml +54 -0
  33. package/blocks/org/blockml/bml/compiler/parser/capability/MapTypeReferenceEntityInstance.bml +46 -0
  34. package/blocks/org/blockml/bml/compiler/parser/capability/MergeSourceInfo.bml +49 -0
  35. package/blocks/org/blockml/bml/compiler/parser/capability/NormalizeBooleanValue.bml +43 -0
  36. package/blocks/org/blockml/bml/compiler/parser/capability/Parse.bml +52 -0
  37. package/blocks/org/blockml/bml/compiler/parser/capability/ParseBmlMeta.bml +43 -0
  38. package/blocks/org/blockml/bml/compiler/parser/capability/ParseBooleanAttribute.bml +43 -0
  39. package/blocks/org/blockml/bml/compiler/parser/capability/ParseDirectives.bml +50 -0
  40. package/blocks/org/blockml/bml/compiler/parser/capability/ParseMemberValue.bml +50 -0
  41. package/blocks/org/blockml/bml/compiler/parser/capability/ParseTypeExpression.bml +53 -0
  42. package/blocks/org/blockml/bml/compiler/parser/capability/ParseVisibilityFromName.bml +47 -0
  43. package/blocks/org/blockml/bml/compiler/parser/capability/ParseXmlDom.bml +47 -0
  44. package/blocks/org/blockml/bml/compiler/parser/capability/ResolveBlockReference.bml +53 -0
  45. package/blocks/org/blockml/bml/compiler/parser/capability/ResolvePrefix.bml +46 -0
  46. package/blocks/org/blockml/bml/compiler/parser/capability/ResolveTypeName.bml +53 -0
  47. package/blocks/org/blockml/bml/compiler/parser/capability/SourceLoc.bml +49 -0
  48. package/blocks/org/blockml/bml/compiler/parser/capability/SplitQName.bml +43 -0
  49. package/blocks/org/blockml/bml/compiler/parser/capability/TrimText.bml +43 -0
  50. package/blocks/org/blockml/bml/compiler/parser/capability/TypeExpressionToString.bml +43 -0
  51. package/blocks/org/blockml/bml/compiler/parser/capability/VisibilityPrefix.bml +43 -0
  52. package/blocks/org/blockml/bml/compiler/parser/capability/XmlTriviaFromElement.bml +47 -0
  53. package/blocks/org/blockml/bml/compiler/parser/config/MapTimeDiagnosticCodes.bml +40 -0
  54. package/blocks/org/blockml/bml/compiler/parser/config/ParserConstants.bml +49 -0
  55. package/blocks/org/blockml/bml/compiler/parser/documentation/ArchitectureOverview.bml +61 -0
  56. package/blocks/org/blockml/bml/compiler/parser/documentation/AttributeClassification.bml +56 -0
  57. package/blocks/org/blockml/bml/compiler/parser/documentation/BlockMetadataMapping.bml +51 -0
  58. package/blocks/org/blockml/bml/compiler/parser/documentation/DesignDecisions.bml +53 -0
  59. package/blocks/org/blockml/bml/compiler/parser/documentation/Diagnostics.bml +52 -0
  60. package/blocks/org/blockml/bml/compiler/parser/documentation/ExpressionCapture.bml +46 -0
  61. package/blocks/org/blockml/bml/compiler/parser/documentation/Introduction.bml +52 -0
  62. package/blocks/org/blockml/bml/compiler/parser/documentation/LayerSeparation.bml +55 -0
  63. package/blocks/org/blockml/bml/compiler/parser/documentation/MappingPrinciples.bml +48 -0
  64. package/blocks/org/blockml/bml/compiler/parser/documentation/MemberMapping.bml +48 -0
  65. package/blocks/org/blockml/bml/compiler/parser/documentation/MemberMappingOrder.bml +46 -0
  66. package/blocks/org/blockml/bml/compiler/parser/documentation/PackageOwnership.bml +50 -0
  67. package/blocks/org/blockml/bml/compiler/parser/documentation/PublicApi.bml +58 -0
  68. package/blocks/org/blockml/bml/compiler/parser/documentation/RoundtripContract.bml +50 -0
  69. package/blocks/org/blockml/bml/compiler/parser/documentation/ScopeExclusions.bml +49 -0
  70. package/blocks/org/blockml/bml/compiler/parser/documentation/SingleFileScope.bml +47 -0
  71. package/blocks/org/blockml/bml/compiler/parser/documentation/TypeDescriptorParsing.bml +47 -0
  72. package/blocks/org/blockml/bml/compiler/parser/documentation/V1Scope.bml +48 -0
  73. package/blocks/org/blockml/bml/compiler/parser/documentation/XmlCommentsParse.bml +48 -0
  74. package/blocks/org/blockml/bml/compiler/parser/map/MapContext.bml +58 -0
  75. package/dist/index.d.ts +2 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +2 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/map/context.d.ts +16 -0
  80. package/dist/map/context.d.ts.map +1 -0
  81. package/dist/map/context.js +15 -0
  82. package/dist/map/context.js.map +1 -0
  83. package/dist/map/directives.d.ts +23 -0
  84. package/dist/map/directives.d.ts.map +1 -0
  85. package/dist/map/directives.js +89 -0
  86. package/dist/map/directives.js.map +1 -0
  87. package/dist/map/map-block.d.ts +6 -0
  88. package/dist/map/map-block.d.ts.map +1 -0
  89. package/dist/map/map-block.js +792 -0
  90. package/dist/map/map-block.js.map +1 -0
  91. package/dist/map/map-composition.d.ts +23 -0
  92. package/dist/map/map-composition.d.ts.map +1 -0
  93. package/dist/map/map-composition.js +241 -0
  94. package/dist/map/map-composition.js.map +1 -0
  95. package/dist/map/member-value.d.ts +4 -0
  96. package/dist/map/member-value.d.ts.map +1 -0
  97. package/dist/map/member-value.js +69 -0
  98. package/dist/map/member-value.js.map +1 -0
  99. package/dist/map/type-expression.d.ts +6 -0
  100. package/dist/map/type-expression.d.ts.map +1 -0
  101. package/dist/map/type-expression.js +266 -0
  102. package/dist/map/type-expression.js.map +1 -0
  103. package/dist/parse.d.ts +3 -0
  104. package/dist/parse.d.ts.map +1 -0
  105. package/dist/parse.js +80 -0
  106. package/dist/parse.js.map +1 -0
  107. package/dist/pipeline/format-detect.d.ts +2 -0
  108. package/dist/pipeline/format-detect.d.ts.map +1 -0
  109. package/dist/pipeline/format-detect.js +8 -0
  110. package/dist/pipeline/format-detect.js.map +1 -0
  111. package/dist/pipeline/namespaces.d.ts +7 -0
  112. package/dist/pipeline/namespaces.d.ts.map +1 -0
  113. package/dist/pipeline/namespaces.js +45 -0
  114. package/dist/pipeline/namespaces.js.map +1 -0
  115. package/dist/pipeline/root-type.d.ts +3 -0
  116. package/dist/pipeline/root-type.d.ts.map +1 -0
  117. package/dist/pipeline/root-type.js +8 -0
  118. package/dist/pipeline/root-type.js.map +1 -0
  119. package/dist/pipeline/xml-dom.d.ts +5 -0
  120. package/dist/pipeline/xml-dom.d.ts.map +1 -0
  121. package/dist/pipeline/xml-dom.js +20 -0
  122. package/dist/pipeline/xml-dom.js.map +1 -0
  123. package/dist/util/boolean.d.ts +4 -0
  124. package/dist/util/boolean.d.ts.map +1 -0
  125. package/dist/util/boolean.js +18 -0
  126. package/dist/util/boolean.js.map +1 -0
  127. package/dist/util/qname.d.ts +17 -0
  128. package/dist/util/qname.d.ts.map +1 -0
  129. package/dist/util/qname.js +189 -0
  130. package/dist/util/qname.js.map +1 -0
  131. package/dist/util/visibility.d.ts +7 -0
  132. package/dist/util/visibility.d.ts.map +1 -0
  133. package/dist/util/visibility.js +20 -0
  134. package/dist/util/visibility.js.map +1 -0
  135. package/dist/util/xml.d.ts +25 -0
  136. package/dist/util/xml.d.ts.map +1 -0
  137. package/dist/util/xml.js +133 -0
  138. package/dist/util/xml.js.map +1 -0
  139. package/package.json +42 -0
@@ -0,0 +1,143 @@
1
+ <!--
2
+ BlockML Parser Library Descriptor
3
+ FQN: org.blockml.bml.compiler.parser.Library
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:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:parser="org.blockml.bml.compiler.parser"
21
+ xmlns:parcap="org.blockml.bml.compiler.parser.capability"
22
+ xmlns:parconfig="org.blockml.bml.compiler.parser.config"
23
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
24
+ xmlns:parmap="org.blockml.bml.compiler.parser.map"
25
+ xmlns:type="org.blockml.bml.type"
26
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
27
+ xmlns:serdocumentation="org.blockml.bml.compiler.serializer.documentation">
28
+
29
+ <name>Library</name>
30
+ <type>parser:Library</type>
31
+ <baseType>core:BlockLibrary</baseType>
32
+ <is>The BlockML Parser compiler package library catalog</is>
33
+
34
+ <documentation>
35
+ Canonical parser specification for BlockML — BML → BOM mapping algorithm,
36
+ Stage 1 pipeline [1]–[5], and parse() contract. TypeScript in packages/parser/src/
37
+ implements this library. Input/output Urmodell types live in org.blockml.bml.bom.*
38
+ (@blockml/bom). Membership is defined exclusively by this blocks list.
39
+ </documentation>
40
+
41
+ <version>0.1.0</version>
42
+
43
+ <language>
44
+ <English />
45
+ </language>
46
+
47
+ <properties>
48
+ <description>
49
+ <value>BlockML Parser library</value>
50
+ </description>
51
+ </properties>
52
+
53
+ <aggregations>
54
+ <readMe>
55
+ <composition>
56
+ <parser:README />
57
+ </composition>
58
+ </readMe>
59
+ <dependencies>
60
+ <composition>
61
+ <blockml:Library />
62
+ </composition>
63
+ <composition>
64
+ <bom:Library />
65
+ </composition>
66
+ </dependencies>
67
+ <blocks>
68
+ <composition><parser:ParserType /></composition>
69
+ <composition><parmap:MapContext /></composition>
70
+ <composition><parconfig:ParserConstants /></composition>
71
+ <composition><parconfig:MapTimeDiagnosticCodes /></composition>
72
+ <composition><parcap:Parse /></composition>
73
+ <composition><parcap:DetectFormat /></composition>
74
+ <composition><parcap:ParseXmlDom /></composition>
75
+ <composition><parcap:GetParseErrors /></composition>
76
+ <composition><parcap:DocumentElement /></composition>
77
+ <composition><parcap:AssertBlockRoot /></composition>
78
+ <composition><parcap:ExtractNamespaceBindings /></composition>
79
+ <composition><parcap:MergeSourceInfo /></composition>
80
+ <composition><parcap:CreateMapContext /></composition>
81
+ <composition><parcap:MapDocumentBlock /></composition>
82
+ <composition><parcap:MapBlock /></composition>
83
+ <composition><parcap:MapCompositionTemplate /></composition>
84
+ <composition><parcap:MapBlockInstanceNode /></composition>
85
+ <composition><parcap:IsTypeReferenceEntitySugar /></composition>
86
+ <composition><parcap:MapTypeReferenceEntityInstance /></composition>
87
+ <composition><parcap:BuildSubBlockIndex /></composition>
88
+ <composition><parcap:ParseTypeExpression /></composition>
89
+ <composition><parcap:InferCardinality /></composition>
90
+ <composition><parcap:TypeExpressionToString /></composition>
91
+ <composition><parcap:ParseMemberValue /></composition>
92
+ <composition><parcap:ExpressionFromRaw /></composition>
93
+ <composition><parcap:ParseDirectives /></composition>
94
+ <composition><parcap:ParseBmlMeta /></composition>
95
+ <composition><parcap:ParseVisibilityFromName /></composition>
96
+ <composition><parcap:VisibilityPrefix /></composition>
97
+ <composition><parcap:NormalizeBooleanValue /></composition>
98
+ <composition><parcap:IsBooleanLiteral /></composition>
99
+ <composition><parcap:ParseBooleanAttribute /></composition>
100
+ <composition><parcap:SplitQName /></composition>
101
+ <composition><parcap:ResolvePrefix /></composition>
102
+ <composition><parcap:ResolveBlockReference /></composition>
103
+ <composition><parcap:ResolveTypeName /></composition>
104
+ <composition><parcap:HasBmlSemanticQNameBindings /></composition>
105
+ <composition><parcap:FqnToQName /></composition>
106
+ <composition><parcap:SourceLoc /></composition>
107
+ <composition><parcap:ElementSourceLoc /></composition>
108
+ <composition><parcap:IsElement /></composition>
109
+ <composition><parcap:IsComment /></composition>
110
+ <composition><parcap:IsTextNode /></composition>
111
+ <composition><parcap:IsCData /></composition>
112
+ <composition><parcap:ElementChildren /></composition>
113
+ <composition><parcap:ElementLocalName /></composition>
114
+ <composition><parcap:ElementPrefix /></composition>
115
+ <composition><parcap:GetAttribute /></composition>
116
+ <composition><parcap:GetCharacterData /></composition>
117
+ <composition><parcap:CollectLeadingComments /></composition>
118
+ <composition><parcap:CollectTrailingComments /></composition>
119
+ <composition><parcap:XmlTriviaFromElement /></composition>
120
+ <composition><parcap:TrimText /></composition>
121
+ <composition><pardocumentation:Introduction /></composition>
122
+ <composition><pardocumentation:LayerSeparation /></composition>
123
+ <composition><pardocumentation:ArchitectureOverview /></composition>
124
+ <composition><pardocumentation:V1Scope /></composition>
125
+ <composition><pardocumentation:PublicApi /></composition>
126
+ <composition><pardocumentation:MappingPrinciples /></composition>
127
+ <composition><pardocumentation:MemberMappingOrder /></composition>
128
+ <composition><pardocumentation:AttributeClassification /></composition>
129
+ <composition><pardocumentation:XmlCommentsParse /></composition>
130
+ <composition><pardocumentation:TypeDescriptorParsing /></composition>
131
+ <composition><pardocumentation:BlockMetadataMapping /></composition>
132
+ <composition><pardocumentation:MemberMapping /></composition>
133
+ <composition><pardocumentation:ExpressionCapture /></composition>
134
+ <composition><pardocumentation:SingleFileScope /></composition>
135
+ <composition><pardocumentation:DesignDecisions /></composition>
136
+ <composition><pardocumentation:RoundtripContract /></composition>
137
+ <composition><pardocumentation:Diagnostics /></composition>
138
+ <composition><pardocumentation:PackageOwnership /></composition>
139
+ <composition><pardocumentation:ScopeExclusions /></composition>
140
+ </blocks>
141
+ </aggregations>
142
+
143
+ </block>
@@ -0,0 +1,40 @@
1
+ <!--
2
+ Parser — ParserType
3
+ FQN: org.blockml.bml.compiler.parser.ParserType
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:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:parser="org.blockml.bml.compiler.parser"
21
+ xmlns:parcap="org.blockml.bml.compiler.parser.capability"
22
+ xmlns:parconfig="org.blockml.bml.compiler.parser.config"
23
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
24
+ xmlns:parmap="org.blockml.bml.compiler.parser.map"
25
+ xmlns:type="org.blockml.bml.type">
26
+
27
+ <name>ParserType</name>
28
+ <type>parser:ParserType</type>
29
+ <baseType>core:Entity</baseType>
30
+ <is>Abstract marker for parser implementation data-structure blocks</is>
31
+
32
+ <documentation>All org.blockml.bml.compiler.parser.map.* and .config.* types extend this marker. Distinct from bom:UrmodellType (parse-result data) and core:Capability (operations).</documentation>
33
+
34
+ <references>
35
+ <see type="bom:UrmodellType" relation="SeeAlso" />
36
+ </references>
37
+
38
+ <abstract>true</abstract>
39
+
40
+ </block>
@@ -0,0 +1,68 @@
1
+ <!--
2
+ BlockML Parser — README
3
+ FQN: org.blockml.bml.compiler.parser.README
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:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:parser="org.blockml.bml.compiler.parser"
21
+ xmlns:parcap="org.blockml.bml.compiler.parser.capability"
22
+ xmlns:parconfig="org.blockml.bml.compiler.parser.config"
23
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
24
+ xmlns:parmap="org.blockml.bml.compiler.parser.map"
25
+ xmlns:type="org.blockml.bml.type"
26
+ xmlns:bomdocumentation="org.blockml.bml.bom.documentation"
27
+ xmlns:fwdocumentation="org.blockml.bml.framework.documentation"
28
+ xmlns:serdocumentation="org.blockml.bml.compiler.serializer.documentation"
29
+ xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
30
+
31
+ <name>README</name>
32
+ <type>blockml:README</type>
33
+ <baseType>core:ReadMe</baseType>
34
+ <is>Reading entry for the Parser compiler library</is>
35
+
36
+ <documentation>
37
+ The @blockml/parser package converts BML XML to BomDocument (Urmodell).
38
+ This library (org.blockml.bml.compiler.parser.*) is the SSOT; TypeScript in
39
+ packages/parser/src/ implements it. Parity tests in packages/parser/test/
40
+ verify BML ↔ TS alignment.
41
+
42
+ Start reading at org.blockml.bml.compiler.parser.documentation.Introduction (ReadNext chain).
43
+
44
+ Layer separation:
45
+ • org.blockml.bml.bom.* (@blockml/bom) — Urmodell types parser produces
46
+ • org.blockml.bml.compiler.parser.* (this library) — mapping rules and pipeline
47
+ • org.blockml.bml.compiler.serializer.* (@blockml/serializer) — inverse emit
48
+ • org.blockml.bml.framework.* (@blockml/framework) — Stage-2 utilities
49
+ • org.blockml.bml.compiler.validator.* (@blockml/validator) — validate() orchestration
50
+ • org.blockml.bml.definition.* (@blockml/core) — BML meta-model
51
+
52
+ Modules: documentation (narrative specs), map (MapContext), config (constants),
53
+ capability (parse + map operations).
54
+
55
+ Not in this library: SerializeResult (@blockml/serializer); bomEquals (@blockml/bom).
56
+ </documentation>
57
+
58
+ <references>
59
+ <see type="pardocumentation:Introduction" relation="ReadFirst" />
60
+ <see type="pardocumentation:DesignDecisions" relation="SeeAlso" />
61
+ <see type="pardocumentation:PublicApi" relation="SeeAlso" />
62
+ <see type="bomdocumentation:PublicApi" relation="SeeAlso" />
63
+ <see type="serdocumentation:Introduction" relation="SeeAlso" />
64
+ <see type="fwdocumentation:Introduction" relation="SeeAlso" />
65
+ <see type="valdocumentation:Introduction" relation="SeeAlso" />
66
+ </references>
67
+
68
+ </block>
@@ -0,0 +1,45 @@
1
+ <!--
2
+ Parser Capability — AssertBlockRoot
3
+ FQN: org.blockml.bml.compiler.parser.capability.AssertBlockRoot
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:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:parser="org.blockml.bml.compiler.parser"
21
+ xmlns:parcap="org.blockml.bml.compiler.parser.capability"
22
+ xmlns:parconfig="org.blockml.bml.compiler.parser.config"
23
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
24
+ xmlns:parmap="org.blockml.bml.compiler.parser.map"
25
+ xmlns:type="org.blockml.bml.type">
26
+
27
+ <name>AssertBlockRoot</name>
28
+ <type>parcap:AssertBlockRoot</type>
29
+ <baseType>core:Capability</baseType>
30
+ <is>Root type resolver — step [3]; V1 requires <block></is>
31
+
32
+ <documentation>Throws BML_INVALID_ROOT when localName !== block.</documentation>
33
+
34
+ <references>
35
+ <see type="parconfig:ParserConstants" relation="SeeAlso" />
36
+ <see type="pardocumentation:ArchitectureOverview" relation="SeeAlso" />
37
+ </references>
38
+
39
+ <properties>
40
+ <element type="core:Any">
41
+ <documentation>element. TS type: core:Any. (required)</documentation>
42
+ </element>
43
+ </properties>
44
+
45
+ </block>
@@ -0,0 +1,43 @@
1
+ <!--
2
+ Parser Capability — BuildSubBlockIndex
3
+ FQN: org.blockml.bml.compiler.parser.capability.BuildSubBlockIndex
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:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:parser="org.blockml.bml.compiler.parser"
21
+ xmlns:parcap="org.blockml.bml.compiler.parser.capability"
22
+ xmlns:parconfig="org.blockml.bml.compiler.parser.config"
23
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
24
+ xmlns:parmap="org.blockml.bml.compiler.parser.map"
25
+ xmlns:type="org.blockml.bml.type">
26
+
27
+ <name>BuildSubBlockIndex</name>
28
+ <type>parcap:BuildSubBlockIndex</type>
29
+ <baseType>core:Capability</baseType>
30
+ <is>Build sub-block name → type FQN index from BlockDefinition</is>
31
+
32
+ <documentation>Build sub-block name → type FQN index from BlockDefinition</documentation>
33
+
34
+ <properties>
35
+ <block type="bomblock:BlockDefinition">
36
+ <documentation>block. TS type: bomblock:BlockDefinition. (required)</documentation>
37
+ </block>
38
+ <index type="type:Text">
39
+ <documentation>Map<string, string> (required)</documentation>
40
+ </index>
41
+ </properties>
42
+
43
+ </block>
@@ -0,0 +1,50 @@
1
+ <!--
2
+ Parser Capability — CollectLeadingComments
3
+ FQN: org.blockml.bml.compiler.parser.capability.CollectLeadingComments
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:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:parser="org.blockml.bml.compiler.parser"
21
+ xmlns:parcap="org.blockml.bml.compiler.parser.capability"
22
+ xmlns:parconfig="org.blockml.bml.compiler.parser.config"
23
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
24
+ xmlns:parmap="org.blockml.bml.compiler.parser.map"
25
+ xmlns:type="org.blockml.bml.type">
26
+
27
+ <name>CollectLeadingComments</name>
28
+ <type>parcap:CollectLeadingComments</type>
29
+ <baseType>core:Capability</baseType>
30
+ <is>Collect comment siblings before element index (B11)</is>
31
+
32
+ <documentation>Collect comment siblings before element index (B11)</documentation>
33
+
34
+ <references>
35
+ <see type="pardocumentation:XmlCommentsParse" relation="SeeAlso" />
36
+ </references>
37
+
38
+ <properties>
39
+ <siblings type="core:Any[]">
40
+ <documentation>siblings. TS type: core:Any[]. (required)</documentation>
41
+ </siblings>
42
+ <index type="type:Integer">
43
+ <documentation>index. TS type: type:Integer. (required)</documentation>
44
+ </index>
45
+ <comments type="type:Text[]">
46
+ <documentation>comments. TS type: type:Text[]. (required)</documentation>
47
+ </comments>
48
+ </properties>
49
+
50
+ </block>
@@ -0,0 +1,50 @@
1
+ <!--
2
+ Parser Capability — CollectTrailingComments
3
+ FQN: org.blockml.bml.compiler.parser.capability.CollectTrailingComments
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:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:parser="org.blockml.bml.compiler.parser"
21
+ xmlns:parcap="org.blockml.bml.compiler.parser.capability"
22
+ xmlns:parconfig="org.blockml.bml.compiler.parser.config"
23
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
24
+ xmlns:parmap="org.blockml.bml.compiler.parser.map"
25
+ xmlns:type="org.blockml.bml.type">
26
+
27
+ <name>CollectTrailingComments</name>
28
+ <type>parcap:CollectTrailingComments</type>
29
+ <baseType>core:Capability</baseType>
30
+ <is>Collect comment siblings after element (B11)</is>
31
+
32
+ <documentation>Collect comment siblings after element (B11)</documentation>
33
+
34
+ <references>
35
+ <see type="pardocumentation:XmlCommentsParse" relation="SeeAlso" />
36
+ </references>
37
+
38
+ <properties>
39
+ <siblings type="core:Any[]">
40
+ <documentation>siblings. TS type: core:Any[]. (required)</documentation>
41
+ </siblings>
42
+ <index type="type:Integer">
43
+ <documentation>index. TS type: type:Integer. (required)</documentation>
44
+ </index>
45
+ <comments type="type:Text[]">
46
+ <documentation>comments. TS type: type:Text[]. (required)</documentation>
47
+ </comments>
48
+ </properties>
49
+
50
+ </block>
@@ -0,0 +1,56 @@
1
+ <!--
2
+ Parser Capability — CreateMapContext
3
+ FQN: org.blockml.bml.compiler.parser.capability.CreateMapContext
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:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:parser="org.blockml.bml.compiler.parser"
21
+ xmlns:parcap="org.blockml.bml.compiler.parser.capability"
22
+ xmlns:parconfig="org.blockml.bml.compiler.parser.config"
23
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
24
+ xmlns:parmap="org.blockml.bml.compiler.parser.map"
25
+ xmlns:type="org.blockml.bml.type">
26
+
27
+ <name>CreateMapContext</name>
28
+ <type>parcap:CreateMapContext</type>
29
+ <baseType>core:Capability</baseType>
30
+ <is>Build MapContext for step [5] mapping</is>
31
+
32
+ <documentation>Build MapContext for step [5] mapping</documentation>
33
+
34
+ <references>
35
+ <see type="parmap:MapContext" relation="SeeAlso" />
36
+ </references>
37
+
38
+ <properties>
39
+ <filePath type="type:Text">
40
+ <documentation>filePath. TS type: type:Text. (required)</documentation>
41
+ </filePath>
42
+ <source type="type:Text">
43
+ <documentation>source. TS type: type:Text. (required)</documentation>
44
+ </source>
45
+ <bindings type="type:Text">
46
+ <documentation>bindings. TS type: type:Text. (required)</documentation>
47
+ </bindings>
48
+ <options type="core:Any">
49
+ <documentation>subBlockIndex, parentBlockType, isRoot, isEmbedded. (optional)</documentation>
50
+ </options>
51
+ <context type="parmap:MapContext">
52
+ <documentation>context. TS type: parmap:MapContext. (required)</documentation>
53
+ </context>
54
+ </properties>
55
+
56
+ </block>
@@ -0,0 +1,47 @@
1
+ <!--
2
+ Parser Capability — DetectFormat
3
+ FQN: org.blockml.bml.compiler.parser.capability.DetectFormat
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:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:parser="org.blockml.bml.compiler.parser"
21
+ xmlns:parcap="org.blockml.bml.compiler.parser.capability"
22
+ xmlns:parconfig="org.blockml.bml.compiler.parser.config"
23
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
24
+ xmlns:parmap="org.blockml.bml.compiler.parser.map"
25
+ xmlns:type="org.blockml.bml.type">
26
+
27
+ <name>DetectFormat</name>
28
+ <type>parcap:DetectFormat</type>
29
+ <baseType>core:Capability</baseType>
30
+ <is>Format detector — step [1] (B24)</is>
31
+
32
+ <documentation>Strip UTF-8 BOM; detect xml when first non-whitespace is '<'.</documentation>
33
+
34
+ <references>
35
+ <see type="pardocumentation:ArchitectureOverview" relation="SeeAlso" />
36
+ </references>
37
+
38
+ <properties>
39
+ <source type="type:Text">
40
+ <documentation>source. TS type: type:Text. (required)</documentation>
41
+ </source>
42
+ <format type="type:Text">
43
+ <documentation>"xml" | null (optional)</documentation>
44
+ </format>
45
+ </properties>
46
+
47
+ </block>
@@ -0,0 +1,43 @@
1
+ <!--
2
+ Parser Capability — DocumentElement
3
+ FQN: org.blockml.bml.compiler.parser.capability.DocumentElement
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:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:parser="org.blockml.bml.compiler.parser"
21
+ xmlns:parcap="org.blockml.bml.compiler.parser.capability"
22
+ xmlns:parconfig="org.blockml.bml.compiler.parser.config"
23
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
24
+ xmlns:parmap="org.blockml.bml.compiler.parser.map"
25
+ xmlns:type="org.blockml.bml.type">
26
+
27
+ <name>DocumentElement</name>
28
+ <type>parcap:DocumentElement</type>
29
+ <baseType>core:Capability</baseType>
30
+ <is>Get root element from DOM document</is>
31
+
32
+ <documentation>Get root element from DOM document</documentation>
33
+
34
+ <properties>
35
+ <document type="core:Any">
36
+ <documentation>document. TS type: core:Any. (required)</documentation>
37
+ </document>
38
+ <element type="core:Any">
39
+ <documentation>Element | null (optional)</documentation>
40
+ </element>
41
+ </properties>
42
+
43
+ </block>
@@ -0,0 +1,43 @@
1
+ <!--
2
+ Parser Capability — ElementChildren
3
+ FQN: org.blockml.bml.compiler.parser.capability.ElementChildren
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:core="org.blockml.bml.core"
19
+ xmlns:def="org.blockml.bml.definition"
20
+ xmlns:parser="org.blockml.bml.compiler.parser"
21
+ xmlns:parcap="org.blockml.bml.compiler.parser.capability"
22
+ xmlns:parconfig="org.blockml.bml.compiler.parser.config"
23
+ xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
24
+ xmlns:parmap="org.blockml.bml.compiler.parser.map"
25
+ xmlns:type="org.blockml.bml.type">
26
+
27
+ <name>ElementChildren</name>
28
+ <type>parcap:ElementChildren</type>
29
+ <baseType>core:Capability</baseType>
30
+ <is>Get element child nodes as Element array</is>
31
+
32
+ <documentation>Get element child nodes as Element array</documentation>
33
+
34
+ <properties>
35
+ <element type="core:Any">
36
+ <documentation>element. TS type: core:Any. (required)</documentation>
37
+ </element>
38
+ <children type="core:Any[]">
39
+ <documentation>children. TS type: core:Any[]. (required)</documentation>
40
+ </children>
41
+ </properties>
42
+
43
+ </block>