@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,46 @@
1
+ <!--
2
+ Parser Documentation — MemberMappingOrder
3
+ FQN: org.blockml.bml.compiler.parser.documentation.MemberMappingOrder
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:doc="org.blockml.bml.documentation">
27
+
28
+ <name>MemberMappingOrder</name>
29
+ <type>pardocumentation:MemberMappingOrder</type>
30
+ <baseType>core:Documentation</baseType>
31
+ <is>BML document order preserved in members[]</is>
32
+
33
+ <documentation>Append to members[] in BML document order — the order elements appear in source.
34
+
35
+ • Element localName = member name (no name= attribute on member elements)
36
+ • MUST NOT sort by name, kind, or type
37
+ • Ordinal = index in members[] — roundtrip must preserve array order
38
+ • Parser accepts any authored sibling order; serializer emits canonical order (B12)
39
+
40
+ Inside containers (properties/aggregations/…): filter by kind, keep BOM array order.</documentation>
41
+
42
+ <references>
43
+ <see type="pardocumentation:AttributeClassification" relation="ReadNext"></see>
44
+ </references>
45
+
46
+ </block>
@@ -0,0 +1,50 @@
1
+ <!--
2
+ Parser Documentation — PackageOwnership
3
+ FQN: org.blockml.bml.compiler.parser.documentation.PackageOwnership
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:doc="org.blockml.bml.documentation">
27
+
28
+ <name>PackageOwnership</name>
29
+ <type>pardocumentation:PackageOwnership</type>
30
+ <baseType>core:Documentation</baseType>
31
+ <is>Toolchain package responsibilities for parsing</is>
32
+
33
+ <documentation>@blockml/parser — BML XML → BomDocument; parse() → ParseResult.
34
+ Owns mapping algorithm, Stage 1 pipeline [1]–[5], this BML library.
35
+
36
+ @blockml/bom — Urmodell types, ParseOptions/ParseResult (B26), Diagnostic,
37
+ bomEquals/stripProvenance (B20). Parser produces; does not redefine.
38
+
39
+ @blockml/framework — TypeRegistry, parseExpression(), Definition meta-model, validateTypes.
40
+ Parser consumes implicit namespace rules; defers AST and semantic validation.
41
+
42
+ @blockml/serializer — BOM → BML inverse. @blockml/validator — Stage 2 checks.
43
+ @blockml/cli — TypeRegistry bootstrap and orchestration.</documentation>
44
+
45
+ <references>
46
+ <see type="pardocumentation:ScopeExclusions" relation="ReadNext"></see>
47
+ <see type="bomdocumentation:PackageOwnership" relation="SeeAlso"></see>
48
+ </references>
49
+
50
+ </block>
@@ -0,0 +1,58 @@
1
+ <!--
2
+ Parser Documentation — PublicApi
3
+ FQN: org.blockml.bml.compiler.parser.documentation.PublicApi
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:doc="org.blockml.bml.documentation">
27
+
28
+ <name>PublicApi</name>
29
+ <type>pardocumentation:PublicApi</type>
30
+ <baseType>core:Documentation</baseType>
31
+ <is>parse() entry point (B26)</is>
32
+
33
+ <documentation>parse(source: string, options?: ParseOptions): ParseResult
34
+
35
+ ParseOptions (owned by @blockml/bom):
36
+ • filePath — default "<memory>"; written to BomDocument.source.filePath
37
+ • continueOnError — default true; keep mapping after errors when possible
38
+
39
+ ParseResult (owned by @blockml/bom):
40
+ • document — BomDocument | null (null on hard fail)
41
+ • diagnostics — Diagnostic[]
42
+ • success — false if any diagnostic has severity === "error"
43
+
44
+ Behaviour:
45
+ • B24 detect → [2] xmldom → [3]–[5] map
46
+ • Hard fail → document: null (unsupported format, missing root, invalid root)
47
+ • Mapping errors → BML_MAP_ERROR; with continueOnError still return document when possible
48
+ • Sync only; no throw on recoverable errors
49
+ • Does NOT call validator; does NOT expand directives</documentation>
50
+
51
+ <references>
52
+ <see type="bomapi:ParseOptions" relation="Defines"></see>
53
+ <see type="bomapi:ParseResult" relation="Defines"></see>
54
+ <see type="parcap:Parse" relation="Defines"></see>
55
+ <see type="pardocumentation:MappingPrinciples" relation="ReadNext"></see>
56
+ </references>
57
+
58
+ </block>
@@ -0,0 +1,50 @@
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
+ "
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:doc="org.blockml.bml.documentation">
27
+
28
+ <name>RoundtripContract</name>
29
+ <type>pardocumentation:RoundtripContract</type>
30
+ <baseType>core:Documentation</baseType>
31
+ <is>Parse-side roundtrip obligations (B10/B11/B13/B20)</is>
32
+
33
+ <documentation>Phase-A gate: bomEquals(stripProvenance(parse(serialize(parse(f)))), parse(f)).
34
+ Shared definition in @blockml/bom (B20).
35
+
36
+ Parser obligations:
37
+ • Preserve semantic content for serializer re-emit
38
+ • Store xmlRendering, authoredPlacement, authoredCharacterDataForm, namespaceBindings
39
+ • Do NOT require storing formatting whitespace (B13)
40
+ • Single-file roundtrip tests do not require TypeRegistry bootstrap
41
+
42
+ XML byte fidelity NOT a gate — see @blockml/serializer RoundtripContract.</documentation>
43
+
44
+ <references>
45
+ <see type="bomcap:BomEquals" relation="SeeAlso"></see>
46
+ <see type="serdocumentation:RoundtripContract" relation="SeeAlso"></see>
47
+ <see type="pardocumentation:Diagnostics" relation="ReadNext"></see>
48
+ </references>
49
+
50
+ </block>
@@ -0,0 +1,49 @@
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
+ "
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:doc="org.blockml.bml.documentation">
27
+
28
+ <name>ScopeExclusions</name>
29
+ <type>pardocumentation:ScopeExclusions</type>
30
+ <baseType>core:Documentation</baseType>
31
+ <is>Explicit out-of-scope for the parser package</is>
32
+
33
+ <documentation>Out of scope for @blockml/parser:
34
+
35
+ • BOM → BML emit — @blockml/serializer
36
+ • Semantic validation — @blockml/validator
37
+ • TypeRegistry bootstrap / cross-file resolve — @blockml/cli + @blockml/framework
38
+ • parseExpression() AST — @blockml/framework (Stage 2)
39
+ • Render target output — @blockml/compiler
40
+ • parseFile, async, streaming — deferred API
41
+ • Meta-driven mapping from Definition blocks — V2
42
+
43
+ In scope: single-file BML XML → lossless BomDocument.</documentation>
44
+
45
+ <references>
46
+ <see type="pardocumentation:Introduction" relation="SeeAlso"></see>
47
+ </references>
48
+
49
+ </block>
@@ -0,0 +1,47 @@
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
+ "
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:doc="org.blockml.bml.documentation">
27
+
28
+ <name>SingleFileScope</name>
29
+ <type>pardocumentation:SingleFileScope</type>
30
+ <baseType>core:Documentation</baseType>
31
+ <is>One BomDocument per parse(); external refs as strings (B5)</is>
32
+
33
+ <documentation>parse() produces exactly one BomDocument per invocation.
34
+
35
+ Cross-file references stored in authored form:
36
+ • type/baseType FQNs as resolved strings
37
+ • Preset refs as FQN::id strings (unmerged)
38
+ • bml:version on instances — no registry lookup at parse time
39
+
40
+ TypeRegistry bootstrap, effective member resolution, cross-file validation →
41
+ @blockml/cli orchestrator + @blockml/core utilities + @blockml/validator.</documentation>
42
+
43
+ <references>
44
+ <see type="pardocumentation:DesignDecisions" relation="ReadNext"></see>
45
+ </references>
46
+
47
+ </block>
@@ -0,0 +1,47 @@
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
+ "
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:doc="org.blockml.bml.documentation">
27
+
28
+ <name>TypeDescriptorParsing</name>
29
+ <type>pardocumentation:TypeDescriptorParsing</type>
30
+ <baseType>core:Documentation</baseType>
31
+ <is>TypeExpression parsing at map time</is>
32
+
33
+ <documentation>Parse type attribute strings into BOM TypeExpression shapes (defined in @blockml/bom).
34
+
35
+ • Named type refs → resolved FQN via namespace bindings + implicit namespaces
36
+ • Union (A | B), struct ({ a: T }), multiplicity, generics, self refs
37
+ • Boolean.True/Boolean.False preserved as type refs (B16) — not rewritten to literals
38
+ • Boolean values normalized to lowercase (B15)
39
+ • Failure → BML_UNKNOWN_TYPE
40
+ • Anonymous struct at specialized sites; context-bound implicit namespaces per 02_mbml.md</documentation>
41
+
42
+ <references>
43
+ <see type="parcap:ParseTypeExpression" relation="Defines"></see>
44
+ <see type="pardocumentation:BlockMetadataMapping" relation="ReadNext"></see>
45
+ </references>
46
+
47
+ </block>
@@ -0,0 +1,48 @@
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
+ "
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:doc="org.blockml.bml.documentation">
27
+
28
+ <name>V1Scope</name>
29
+ <type>pardocumentation:V1Scope</type>
30
+ <baseType>core:Documentation</baseType>
31
+ <is>Phase A parser slice and deferred features</is>
32
+
33
+ <documentation>V1 (Phase A) parser implements:
34
+ • Hardcoded BML → BOM mapper for <block> root documents
35
+ • Single-file scope (B5) — no TypeRegistry bootstrap in parse()
36
+ • Stage 1 only — no semantic validation (B8: XSD not Stage 1)
37
+ • JSON BML authoring not planned (B6)
38
+ • Tolerant parse by default (continueOnError: true)
39
+
40
+ Deferred: cross-file resolution, parseFile/async, streaming, parse({ validate: true }),
41
+ meta-driven mapping from Definition blocks (V2).</documentation>
42
+
43
+ <references>
44
+ <see type="pardocumentation:PublicApi" relation="ReadNext"></see>
45
+ <see type="pardocumentation:SingleFileScope" relation="SeeAlso"></see>
46
+ </references>
47
+
48
+ </block>
@@ -0,0 +1,48 @@
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
+ "
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:doc="org.blockml.bml.documentation">
27
+
28
+ <name>XmlCommentsParse</name>
29
+ <type>pardocumentation:XmlCommentsParse</type>
30
+ <baseType>core:Documentation</baseType>
31
+ <is>Comment binding algorithm (B11 parse side)</is>
32
+
33
+ <documentation>Cross-ref: org.blockml.bml.bom.documentation.XmlComments for Urmodell storage model.
34
+
35
+ Parse algorithm:
36
+ • pendingLeading comments → bind to next element as leadingComments
37
+ • Comments after element end tag → trailingComments on that element
38
+ • Storage: xmlTrivia on elements, memberSectionTrivia, metadataTrivia
39
+
40
+ Comment bodies only — without <!-- / -->. Whitespace/layout not stored (B13).
41
+ Re-emit rules (B22) → @blockml/serializer.</documentation>
42
+
43
+ <references>
44
+ <see type="bomdocumentation:XmlComments" relation="SeeAlso"></see>
45
+ <see type="pardocumentation:TypeDescriptorParsing" relation="ReadNext"></see>
46
+ </references>
47
+
48
+ </block>
@@ -0,0 +1,58 @@
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
+ "
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>MapContext</name>
28
+ <type>parmap:MapContext</type>
29
+ <baseType>parser:ParserType</baseType>
30
+ <is>Per-parse mapping configuration and namespace context</is>
31
+
32
+ <documentation>Created by createMapContext(). Passed through map/* modules during step [5].</documentation>
33
+
34
+ <properties>
35
+ <filePath type="type:Text">
36
+ <documentation>filePath. TS type: type:Text. (required)</documentation>
37
+ </filePath>
38
+ <source type="type:Text">
39
+ <documentation>Original source string. (required)</documentation>
40
+ </source>
41
+ <bindings type="type:Text">
42
+ <documentation>Record<string, string> namespace bindings. (required)</documentation>
43
+ </bindings>
44
+ <subBlockIndex type="type:Text">
45
+ <documentation>Map<string, string> sub-block lookup. (required)</documentation>
46
+ </subBlockIndex>
47
+ <parentBlockType type="type:Text">
48
+ <documentation>Enclosing block type FQN when nested. (optional)</documentation>
49
+ </parentBlockType>
50
+ <isRoot type="type:Boolean">
51
+ <documentation>isRoot. TS type: type:Boolean. (required)</documentation>
52
+ </isRoot>
53
+ <isEmbedded type="type:Boolean">
54
+ <documentation>isEmbedded. TS type: type:Boolean. (required)</documentation>
55
+ </isEmbedded>
56
+ </properties>
57
+
58
+ </block>
@@ -0,0 +1,2 @@
1
+ export { parse } from "./parse.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { parse } from "./parse.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface MapContext {
2
+ filePath: string;
3
+ source: string;
4
+ bindings: Record<string, string>;
5
+ subBlockIndex: Map<string, string>;
6
+ parentBlockType?: string;
7
+ isRoot: boolean;
8
+ isEmbedded: boolean;
9
+ }
10
+ export declare function createMapContext(filePath: string, source: string, bindings: Record<string, string>, options?: {
11
+ subBlockIndex?: Map<string, string>;
12
+ parentBlockType?: string;
13
+ isRoot?: boolean;
14
+ isEmbedded?: boolean;
15
+ }): MapContext;
16
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/map/context.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACjB,GACL,UAAU,CAaZ"}
@@ -0,0 +1,15 @@
1
+ export function createMapContext(filePath, source, bindings, options = {}) {
2
+ const ctx = {
3
+ filePath,
4
+ source,
5
+ bindings,
6
+ subBlockIndex: options.subBlockIndex ?? new Map(),
7
+ isRoot: options.isRoot ?? false,
8
+ isEmbedded: options.isEmbedded ?? false,
9
+ };
10
+ if (options.parentBlockType !== undefined) {
11
+ ctx.parentBlockType = options.parentBlockType;
12
+ }
13
+ return ctx;
14
+ }
15
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/map/context.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,gBAAgB,CAC9B,QAAgB,EAChB,MAAc,EACd,QAAgC,EAChC,UAKI,EAAE;IAEN,MAAM,GAAG,GAAe;QACtB,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE;QACjD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;KACxC,CAAC;IACF,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC1C,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { DirectiveAttribute, ExpressionValue } from "@blockml/bom";
2
+ import type { Element } from "@xmldom/xmldom";
3
+ import type { SourceLocation } from "@blockml/bom";
4
+ export declare function parseDirectives(element: Element, loc: SourceLocation): DirectiveAttribute[];
5
+ export declare function parseBmlMeta(element: Element, typeFqn: string, file: string, loc: SourceLocation): {
6
+ id: ExpressionValue | {
7
+ kind: "literal";
8
+ value: string;
9
+ typeFqn: string;
10
+ } | undefined;
11
+ version: ExpressionValue | {
12
+ kind: "literal";
13
+ value: string;
14
+ typeFqn: string;
15
+ } | undefined;
16
+ bean: ExpressionValue | {
17
+ kind: "literal";
18
+ value: string;
19
+ typeFqn: string;
20
+ } | undefined;
21
+ scope: "local" | "context" | undefined;
22
+ };
23
+ //# sourceMappingURL=directives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../src/map/directives.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,eAAe,EAKhB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAWnD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,cAAc,GAClB,kBAAkB,EAAE,CA4DtB;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,cAAc;;;;;;;;;;;;;;;;;EAiBpB"}