@blockml/framework 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.
- package/blocks/org/blockml/bml/framework/FrameworkType.bml +16 -20
- package/blocks/org/blockml/bml/framework/Library.bml +21 -29
- package/blocks/org/blockml/bml/framework/README.bml +15 -22
- package/blocks/org/blockml/bml/framework/capability/BootstrapFullProjectRegistry.bml +25 -23
- package/blocks/org/blockml/bml/framework/capability/BootstrapTypeRegistry.bml +19 -21
- package/blocks/org/blockml/bml/framework/capability/CollectBaseTypeChain.bml +22 -21
- package/blocks/org/blockml/bml/framework/capability/DefaultBootstrapPaths.bml +19 -20
- package/blocks/org/blockml/bml/framework/capability/EvaluateExpression.bml +19 -20
- package/blocks/org/blockml/bml/framework/capability/EvaluateInterpolatedText.bml +19 -20
- package/blocks/org/blockml/bml/framework/capability/EvaluateParseValue.bml +23 -23
- package/blocks/org/blockml/bml/framework/capability/FindLocalMember.bml +22 -22
- package/blocks/org/blockml/bml/framework/capability/ForkBom.bml +19 -21
- package/blocks/org/blockml/bml/framework/capability/GetExportedFqns.bml +25 -22
- package/blocks/org/blockml/bml/framework/capability/GetPropertyNumericValue.bml +19 -20
- package/blocks/org/blockml/bml/framework/capability/IsLiteralValue.bml +19 -20
- package/blocks/org/blockml/bml/framework/capability/MemberIdentityKey.bml +19 -20
- package/blocks/org/blockml/bml/framework/capability/ParseExpression.bml +19 -21
- package/blocks/org/blockml/bml/framework/capability/ParseInterpolatedText.bml +22 -21
- package/blocks/org/blockml/bml/framework/capability/PeekLibraryTypeFqn.bml +19 -21
- package/blocks/org/blockml/bml/framework/capability/ProjectLibraryPackageDirs.bml +19 -20
- package/blocks/org/blockml/bml/framework/capability/ProjectLibraryPackageRoots.bml +19 -20
- package/blocks/org/blockml/bml/framework/capability/ProjectSourceRoots.bml +22 -21
- package/blocks/org/blockml/bml/framework/capability/RegistryFilesUnderRoots.bml +22 -21
- package/blocks/org/blockml/bml/framework/capability/ResolveContracts.bml +22 -22
- package/blocks/org/blockml/bml/framework/capability/ResolveEffectiveMembers.bml +36 -20
- package/blocks/org/blockml/bml/framework/capability/ResolveLibrarySeeds.bml +22 -22
- package/blocks/org/blockml/bml/framework/capability/RootFqnByFilePath.bml +19 -20
- package/blocks/org/blockml/bml/framework/capability/RootFqns.bml +19 -20
- package/blocks/org/blockml/bml/framework/capability/TypeRegistry.bml +12 -19
- package/blocks/org/blockml/bml/framework/capability/ValidateConstraints.bml +22 -22
- package/blocks/org/blockml/bml/framework/capability/ValidateEmbeddedBlocks.bml +19 -20
- package/blocks/org/blockml/bml/framework/capability/ValidateGenerics.bml +25 -24
- package/blocks/org/blockml/bml/framework/capability/ValidateInstances.bml +22 -21
- package/blocks/org/blockml/bml/framework/capability/ValidatePresets.bml +22 -21
- package/blocks/org/blockml/bml/framework/capability/ValidateReadOnly.bml +22 -21
- package/blocks/org/blockml/bml/framework/capability/ValidateTypes.bml +34 -25
- package/blocks/org/blockml/bml/framework/capability/ValidateVersions.bml +22 -22
- package/blocks/org/blockml/bml/framework/capability/ValidateVisibility.bml +22 -21
- package/blocks/org/blockml/bml/framework/config/FrameworkDiagnosticCodes.bml +16 -19
- package/blocks/org/blockml/bml/framework/documentation/ArchitectureOverview.bml +16 -21
- package/blocks/org/blockml/bml/framework/documentation/ConstraintValidation.bml +17 -22
- package/blocks/org/blockml/bml/framework/documentation/Diagnostics.bml +27 -29
- package/blocks/org/blockml/bml/framework/documentation/EffectiveMembers.bml +18 -23
- package/blocks/org/blockml/bml/framework/documentation/ExpressionParsing.bml +23 -24
- package/blocks/org/blockml/bml/framework/documentation/Introduction.bml +17 -22
- package/blocks/org/blockml/bml/framework/documentation/LayerSeparation.bml +19 -24
- package/blocks/org/blockml/bml/framework/documentation/PackageOwnership.bml +19 -24
- package/blocks/org/blockml/bml/framework/documentation/PublicApi.bml +19 -22
- package/blocks/org/blockml/bml/framework/documentation/ScopeExclusions.bml +16 -21
- package/blocks/org/blockml/bml/framework/documentation/TypeRegistryBootstrap.bml +22 -27
- package/blocks/org/blockml/bml/framework/expression/ArrayExpressionNode.bml +19 -20
- package/blocks/org/blockml/bml/framework/expression/BinaryExpressionNode.bml +25 -22
- package/blocks/org/blockml/bml/framework/expression/CallExpressionNode.bml +22 -21
- package/blocks/org/blockml/bml/framework/expression/ExpressionNode.bml +16 -20
- package/blocks/org/blockml/bml/framework/expression/InterpolatedStringNode.bml +19 -20
- package/blocks/org/blockml/bml/framework/expression/LiteralExpressionNode.bml +19 -20
- package/blocks/org/blockml/bml/framework/expression/ObjectExpressionEntry.bml +19 -20
- package/blocks/org/blockml/bml/framework/expression/ObjectExpressionNode.bml +19 -20
- package/blocks/org/blockml/bml/framework/expression/ParseExpressionError.bml +19 -20
- package/blocks/org/blockml/bml/framework/expression/ParseExpressionOutcome.bml +22 -21
- package/blocks/org/blockml/bml/framework/expression/ParseExpressionResult.bml +19 -20
- package/blocks/org/blockml/bml/framework/expression/PropertyExpressionNode.bml +19 -20
- package/blocks/org/blockml/bml/framework/registry/BootstrapOptions.bml +22 -21
- package/blocks/org/blockml/bml/framework/registry/BootstrapResult.bml +25 -22
- package/blocks/org/blockml/bml/framework/registry/BootstrapTrace.bml +28 -23
- package/dist/expression/parse-expression.d.ts.map +1 -1
- package/dist/expression/parse-expression.js +4 -1
- package/dist/expression/parse-expression.js.map +1 -1
- package/dist/expression/parse-interpolated-text.d.ts.map +1 -1
- package/dist/expression/parse-interpolated-text.js +60 -30
- package/dist/expression/parse-interpolated-text.js.map +1 -1
- package/dist/resolve/resolve-effective-members.d.ts.map +1 -1
- package/dist/resolve/resolve-effective-members.js +21 -0
- package/dist/resolve/resolve-effective-members.js.map +1 -1
- package/dist/validate/validate-parse-values.d.ts.map +1 -1
- package/dist/validate/validate-parse-values.js +8 -12
- package/dist/validate/validate-parse-values.js.map +1 -1
- package/dist/validate/validate-references.d.ts.map +1 -1
- package/dist/validate/validate-references.js +18 -3
- package/dist/validate/validate-references.js.map +1 -1
- package/dist/validate/validate-types.d.ts.map +1 -1
- package/dist/validate/validate-types.js +17 -26
- package/dist/validate/validate-types.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
+
<!--Framework Capability — ValidateGenerics
|
|
2
|
+
FQN: org.blockml.bml.framework.capability.ValidateGenerics-->
|
|
3
|
+
<fwcap:ValidateGenerics 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"
|
|
@@ -31,36 +25,43 @@
|
|
|
31
25
|
xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
|
|
32
26
|
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
|
|
33
27
|
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<is>
|
|
38
|
-
|
|
39
|
-
|
|
28
|
+
<baseType>
|
|
29
|
+
core:Capability
|
|
30
|
+
</baseType>
|
|
31
|
+
<is>
|
|
32
|
+
Open generic instance and bml:generics placement checks
|
|
33
|
+
</is>
|
|
34
|
+
<documentation>
|
|
35
|
+
Open generic instance and bml:generics placement checks against
|
|
40
36
|
TypeRegistry. Emits BML_OPEN_GENERIC_INSTANCE, BML_GENERICS_DIRECTIVE_NOT_ALLOWED,
|
|
41
37
|
BML_GENERICS_ARGUMENT_MISMATCH, and reuses BML_GENERIC_CONSTRAINT_VIOLATION /
|
|
42
38
|
BML_MISSING_GENERIC_TYPE_ARGUMENT.
|
|
43
|
-
|
|
39
|
+
|
|
44
40
|
bml:generics is allowed whenever the instance type declares genericTypes.
|
|
45
41
|
Open parameters require a binding. Parameters with defaultType may omit it;
|
|
46
42
|
authored arguments override defaultType.
|
|
47
|
-
|
|
43
|
+
|
|
48
44
|
BML_OPEN_GENERIC_INSTANCE applies only to domain Block instances. Children of a
|
|
49
45
|
TypeReferenceEntity aggregation (Library blocks, contracts, …) are type
|
|
50
46
|
references — empty QName sugar or explicit TypeReferenceEntity — not instances
|
|
51
47
|
of the named type. They must not carry bml:generics; if present, emit
|
|
52
|
-
BML_GENERICS_DIRECTIVE_NOT_ALLOWED
|
|
53
|
-
|
|
48
|
+
BML_GENERICS_DIRECTIVE_NOT_ALLOWED.
|
|
49
|
+
</documentation>
|
|
54
50
|
<properties>
|
|
55
51
|
<document type="bomdoc:BomDocument">
|
|
56
|
-
<documentation>
|
|
52
|
+
<documentation>
|
|
53
|
+
document. TS type: bomdoc:BomDocument. (required)
|
|
54
|
+
</documentation>
|
|
57
55
|
</document>
|
|
58
56
|
<registry type="fwcap:TypeRegistry">
|
|
59
|
-
<documentation>
|
|
57
|
+
<documentation>
|
|
58
|
+
registry. TS type: fwcap:TypeRegistry. (required)
|
|
59
|
+
</documentation>
|
|
60
60
|
</registry>
|
|
61
61
|
<diagnostics type="bomcommon:Diagnostic[]">
|
|
62
|
-
<documentation>
|
|
62
|
+
<documentation>
|
|
63
|
+
diagnostics. TS type: bomcommon:Diagnostic[]. (required)
|
|
64
|
+
</documentation>
|
|
63
65
|
</diagnostics>
|
|
64
66
|
</properties>
|
|
65
|
-
|
|
66
|
-
</block>
|
|
67
|
+
</fwcap:ValidateGenerics>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
+
<!--Framework Capability — ValidateInstances
|
|
2
|
+
FQN: org.blockml.bml.framework.capability.ValidateInstances-->
|
|
3
|
+
<fwcap:ValidateInstances 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"
|
|
@@ -31,23 +25,30 @@
|
|
|
31
25
|
xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
|
|
32
26
|
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
|
|
33
27
|
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<is>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
<baseType>
|
|
29
|
+
core:Capability
|
|
30
|
+
</baseType>
|
|
31
|
+
<is>
|
|
32
|
+
Instance member rules against TypeRegistry
|
|
33
|
+
</is>
|
|
34
|
+
<documentation>
|
|
35
|
+
Instance member rules against TypeRegistry
|
|
36
|
+
</documentation>
|
|
41
37
|
<properties>
|
|
42
38
|
<document type="bomdoc:BomDocument">
|
|
43
|
-
<documentation>
|
|
39
|
+
<documentation>
|
|
40
|
+
document. TS type: bomdoc:BomDocument. (required)
|
|
41
|
+
</documentation>
|
|
44
42
|
</document>
|
|
45
43
|
<registry type="fwcap:TypeRegistry">
|
|
46
|
-
<documentation>
|
|
44
|
+
<documentation>
|
|
45
|
+
registry. TS type: fwcap:TypeRegistry. (required)
|
|
46
|
+
</documentation>
|
|
47
47
|
</registry>
|
|
48
48
|
<diagnostics type="bomcommon:Diagnostic[]">
|
|
49
|
-
<documentation>
|
|
49
|
+
<documentation>
|
|
50
|
+
diagnostics. TS type: bomcommon:Diagnostic[]. (required)
|
|
51
|
+
</documentation>
|
|
50
52
|
</diagnostics>
|
|
51
53
|
</properties>
|
|
52
|
-
|
|
53
|
-
</block>
|
|
54
|
+
</fwcap:ValidateInstances>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
+
<!--Framework Capability — ValidatePresets
|
|
2
|
+
FQN: org.blockml.bml.framework.capability.ValidatePresets-->
|
|
3
|
+
<fwcap:ValidatePresets 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"
|
|
@@ -31,23 +25,30 @@
|
|
|
31
25
|
xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
|
|
32
26
|
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
|
|
33
27
|
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<is>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
<baseType>
|
|
29
|
+
core:Capability
|
|
30
|
+
</baseType>
|
|
31
|
+
<is>
|
|
32
|
+
Preset member rules against TypeRegistry
|
|
33
|
+
</is>
|
|
34
|
+
<documentation>
|
|
35
|
+
Preset member rules against TypeRegistry
|
|
36
|
+
</documentation>
|
|
41
37
|
<properties>
|
|
42
38
|
<document type="bomdoc:BomDocument">
|
|
43
|
-
<documentation>
|
|
39
|
+
<documentation>
|
|
40
|
+
document. TS type: bomdoc:BomDocument. (required)
|
|
41
|
+
</documentation>
|
|
44
42
|
</document>
|
|
45
43
|
<registry type="fwcap:TypeRegistry">
|
|
46
|
-
<documentation>
|
|
44
|
+
<documentation>
|
|
45
|
+
registry. TS type: fwcap:TypeRegistry. (required)
|
|
46
|
+
</documentation>
|
|
47
47
|
</registry>
|
|
48
48
|
<diagnostics type="bomcommon:Diagnostic[]">
|
|
49
|
-
<documentation>
|
|
49
|
+
<documentation>
|
|
50
|
+
diagnostics. TS type: bomcommon:Diagnostic[]. (required)
|
|
51
|
+
</documentation>
|
|
50
52
|
</diagnostics>
|
|
51
53
|
</properties>
|
|
52
|
-
|
|
53
|
-
</block>
|
|
54
|
+
</fwcap:ValidatePresets>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
+
<!--Framework Capability — ValidateReadOnly
|
|
2
|
+
FQN: org.blockml.bml.framework.capability.ValidateReadOnly-->
|
|
3
|
+
<fwcap:ValidateReadOnly 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"
|
|
@@ -31,23 +25,30 @@
|
|
|
31
25
|
xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
|
|
32
26
|
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
|
|
33
27
|
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<is>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
<baseType>
|
|
29
|
+
core:Capability
|
|
30
|
+
</baseType>
|
|
31
|
+
<is>
|
|
32
|
+
Read-only member rules against TypeRegistry
|
|
33
|
+
</is>
|
|
34
|
+
<documentation>
|
|
35
|
+
Read-only member rules against TypeRegistry
|
|
36
|
+
</documentation>
|
|
41
37
|
<properties>
|
|
42
38
|
<document type="bomdoc:BomDocument">
|
|
43
|
-
<documentation>
|
|
39
|
+
<documentation>
|
|
40
|
+
document. TS type: bomdoc:BomDocument. (required)
|
|
41
|
+
</documentation>
|
|
44
42
|
</document>
|
|
45
43
|
<registry type="fwcap:TypeRegistry">
|
|
46
|
-
<documentation>
|
|
44
|
+
<documentation>
|
|
45
|
+
registry. TS type: fwcap:TypeRegistry. (required)
|
|
46
|
+
</documentation>
|
|
47
47
|
</registry>
|
|
48
48
|
<diagnostics type="bomcommon:Diagnostic[]">
|
|
49
|
-
<documentation>
|
|
49
|
+
<documentation>
|
|
50
|
+
diagnostics. TS type: bomcommon:Diagnostic[]. (required)
|
|
51
|
+
</documentation>
|
|
50
52
|
</diagnostics>
|
|
51
53
|
</properties>
|
|
52
|
-
|
|
53
|
-
</block>
|
|
54
|
+
</fwcap:ValidateReadOnly>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
+
<!--Framework Capability — ValidateTypes
|
|
2
|
+
FQN: org.blockml.bml.framework.capability.ValidateTypes-->
|
|
3
|
+
<fwcap:ValidateTypes 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"
|
|
@@ -31,28 +25,29 @@
|
|
|
31
25
|
xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
|
|
32
26
|
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
|
|
33
27
|
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<is>
|
|
38
|
-
|
|
28
|
+
<baseType>
|
|
29
|
+
core:Capability
|
|
30
|
+
</baseType>
|
|
31
|
+
<is>
|
|
32
|
+
Semantic type checks on BomDocument using TypeRegistry
|
|
33
|
+
</is>
|
|
39
34
|
<documentation>
|
|
40
35
|
Semantic type checks on BomDocument using TypeRegistry.
|
|
41
|
-
|
|
36
|
+
|
|
42
37
|
Existence is classified per declared ValueType — there is no shared MemberReference parent:
|
|
43
|
-
|
|
38
|
+
|
|
44
39
|
- TypeReference, PackageReference, InstanceReference, PropertyReference, AggregationReference,
|
|
45
40
|
AssociationReference, CapabilityReference, and the matching *ReferenceEntity wrappers
|
|
46
41
|
- Identifier types (`TypeIdentifier`, `MemberIdentifier`, …) are syntax-only and are not
|
|
47
42
|
existence-checked
|
|
48
|
-
|
|
43
|
+
|
|
49
44
|
TypeReference / TypeReferenceEntity literals stay authored text (QName or
|
|
50
45
|
TypeExpression). The reference walk re-parses them with
|
|
51
46
|
document.source.namespaceBindings — the same xmlns map as type attributes —
|
|
52
47
|
then existence-checks the resolved FQNs. Canonical default is checked once
|
|
53
48
|
(property.value; values[namespace=""] is the same entry). Prefixed
|
|
54
49
|
PropertyValueEntry facets are not existence-checked.
|
|
55
|
-
|
|
50
|
+
|
|
56
51
|
After the reference walk, canonical BML literals with a declared PrimitiveType are
|
|
57
52
|
checked via fwcap:EvaluateParseValue (property.value / values[namespace=""]).
|
|
58
53
|
Prefixed / annotation-namespaced PropertyValueEntry values (scad:value and other
|
|
@@ -60,24 +55,38 @@
|
|
|
60
55
|
BML lexical values. TODO: a matching prefixed type (for example scad:type for
|
|
61
56
|
scad:value) so each facet can be parseValue-checked in its own language.
|
|
62
57
|
Failure → BML_INVALID_VALUE. Existence stays on the reference walk.
|
|
58
|
+
A JSON-like `[…]` payload is a list only when the declared type has `[]`
|
|
59
|
+
multiplicity. On any non-list type — including StructType — it is
|
|
60
|
+
BML_INVALID_VALUE (collection on a non-list type). Struct values are named
|
|
61
|
+
field mappings, not positional arrays.
|
|
62
|
+
|
|
63
|
+
Local redeclarations that merge with a member from the baseType chain or from
|
|
64
|
+
contracts[] must set override="true" on every member kind — property, aggregation,
|
|
65
|
+
association, and capability. Filling an inherited aggregation with composition
|
|
66
|
+
or default="true" is still a merge. Omission → BML_OVERRIDE_REQUIRED.
|
|
67
|
+
override="true" without a matching inherited or contract member →
|
|
68
|
+
BML_OVERRIDE_WITHOUT_PARENT. Override is not inherited; each layer must set it.
|
|
63
69
|
</documentation>
|
|
64
|
-
|
|
65
70
|
<references>
|
|
66
71
|
<see type="fwcap:ResolveEffectiveMembers" relation="SeeAlso" />
|
|
67
72
|
<see type="fwcap:ParseExpression" relation="SeeAlso" />
|
|
68
73
|
<see type="fwcap:EvaluateParseValue" relation="SeeAlso" />
|
|
69
74
|
</references>
|
|
70
|
-
|
|
71
75
|
<properties>
|
|
72
76
|
<document type="bomdoc:BomDocument">
|
|
73
|
-
<documentation>
|
|
77
|
+
<documentation>
|
|
78
|
+
document. TS type: bomdoc:BomDocument. (required)
|
|
79
|
+
</documentation>
|
|
74
80
|
</document>
|
|
75
81
|
<registry type="fwcap:TypeRegistry">
|
|
76
|
-
<documentation>
|
|
82
|
+
<documentation>
|
|
83
|
+
registry. TS type: fwcap:TypeRegistry. (required)
|
|
84
|
+
</documentation>
|
|
77
85
|
</registry>
|
|
78
86
|
<diagnostics type="bomcommon:Diagnostic[]">
|
|
79
|
-
<documentation>
|
|
87
|
+
<documentation>
|
|
88
|
+
diagnostics. TS type: bomcommon:Diagnostic[]. (required)
|
|
89
|
+
</documentation>
|
|
80
90
|
</diagnostics>
|
|
81
91
|
</properties>
|
|
82
|
-
|
|
83
|
-
</block>
|
|
92
|
+
</fwcap:ValidateTypes>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
+
<!--Framework Capability — ValidateVersions
|
|
2
|
+
FQN: org.blockml.bml.framework.capability.ValidateVersions-->
|
|
3
|
+
<fwcap:ValidateVersions 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"
|
|
@@ -31,27 +25,33 @@
|
|
|
31
25
|
xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
|
|
32
26
|
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
|
|
33
27
|
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<is>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
<baseType>
|
|
29
|
+
core:Capability
|
|
30
|
+
</baseType>
|
|
31
|
+
<is>
|
|
32
|
+
Minimal effectiveBlockVersion and bml:version assert checks
|
|
33
|
+
</is>
|
|
34
|
+
<documentation>
|
|
35
|
+
BML_MISSING_VERSION on standalone root blocks outside framework library convention. BML_UNKNOWN_VERSION when bml:version pin does not match a registered block version.
|
|
36
|
+
</documentation>
|
|
41
37
|
<references>
|
|
42
38
|
<see type="bomdocumentation:VersionRules" relation="SeeAlso" />
|
|
43
39
|
</references>
|
|
44
|
-
|
|
45
40
|
<properties>
|
|
46
41
|
<document type="bomdoc:BomDocument">
|
|
47
|
-
<documentation>
|
|
42
|
+
<documentation>
|
|
43
|
+
document. TS type: bomdoc:BomDocument. (required)
|
|
44
|
+
</documentation>
|
|
48
45
|
</document>
|
|
49
46
|
<registry type="fwcap:TypeRegistry">
|
|
50
|
-
<documentation>
|
|
47
|
+
<documentation>
|
|
48
|
+
registry. TS type: fwcap:TypeRegistry. (required)
|
|
49
|
+
</documentation>
|
|
51
50
|
</registry>
|
|
52
51
|
<diagnostics type="bomcommon:Diagnostic[]">
|
|
53
|
-
<documentation>
|
|
52
|
+
<documentation>
|
|
53
|
+
diagnostics. TS type: bomcommon:Diagnostic[]. (required)
|
|
54
|
+
</documentation>
|
|
54
55
|
</diagnostics>
|
|
55
56
|
</properties>
|
|
56
|
-
|
|
57
|
-
</block>
|
|
57
|
+
</fwcap:ValidateVersions>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
+
<!--Framework Capability — ValidateVisibility
|
|
2
|
+
FQN: org.blockml.bml.framework.capability.ValidateVisibility-->
|
|
3
|
+
<fwcap:ValidateVisibility 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"
|
|
@@ -31,23 +25,30 @@
|
|
|
31
25
|
xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
|
|
32
26
|
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
|
|
33
27
|
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<is>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
<baseType>
|
|
29
|
+
core:Capability
|
|
30
|
+
</baseType>
|
|
31
|
+
<is>
|
|
32
|
+
Visibility member rules against TypeRegistry
|
|
33
|
+
</is>
|
|
34
|
+
<documentation>
|
|
35
|
+
Visibility member rules against TypeRegistry
|
|
36
|
+
</documentation>
|
|
41
37
|
<properties>
|
|
42
38
|
<document type="bomdoc:BomDocument">
|
|
43
|
-
<documentation>
|
|
39
|
+
<documentation>
|
|
40
|
+
document. TS type: bomdoc:BomDocument. (required)
|
|
41
|
+
</documentation>
|
|
44
42
|
</document>
|
|
45
43
|
<registry type="fwcap:TypeRegistry">
|
|
46
|
-
<documentation>
|
|
44
|
+
<documentation>
|
|
45
|
+
registry. TS type: fwcap:TypeRegistry. (required)
|
|
46
|
+
</documentation>
|
|
47
47
|
</registry>
|
|
48
48
|
<diagnostics type="bomcommon:Diagnostic[]">
|
|
49
|
-
<documentation>
|
|
49
|
+
<documentation>
|
|
50
|
+
diagnostics. TS type: bomcommon:Diagnostic[]. (required)
|
|
51
|
+
</documentation>
|
|
50
52
|
</diagnostics>
|
|
51
53
|
</properties>
|
|
52
|
-
|
|
53
|
-
</block>
|
|
54
|
+
</fwcap:ValidateVisibility>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
+
<!--Framework — FrameworkDiagnosticCodes
|
|
2
|
+
FQN: org.blockml.bml.framework.config.FrameworkDiagnosticCodes-->
|
|
3
|
+
<fwconfig:FrameworkDiagnosticCodes 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"
|
|
@@ -31,17 +25,20 @@
|
|
|
31
25
|
xmlns:pardocumentation="org.blockml.bml.compiler.parser.documentation"
|
|
32
26
|
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation">
|
|
33
27
|
|
|
34
|
-
<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<is>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
<baseType>
|
|
29
|
+
framework:FrameworkType
|
|
30
|
+
</baseType>
|
|
31
|
+
<is>
|
|
32
|
+
Diagnostic codes emitted by framework utilities
|
|
33
|
+
</is>
|
|
34
|
+
<documentation>
|
|
35
|
+
Used by validateTypes, validateConstraints, and bootstrapTypeRegistry.
|
|
36
|
+
</documentation>
|
|
41
37
|
<properties>
|
|
42
38
|
<codes type="type:Text[]">
|
|
43
|
-
<documentation>
|
|
39
|
+
<documentation>
|
|
40
|
+
Ordered: BML_BOOTSTRAP_READ_ERROR, BML_CONSTRAINT_INFORMATION, BML_CONSTRAINT_TARGET_MISMATCH, BML_CONSTRAINT_UNKNOWN, BML_CONSTRAINT_VIOLATION, BML_CONSTRAINT_WARNING, BML_DUPLICATE_EMBEDDED_BLOCK, BML_DUPLICATE_MEMBER_VISIBILITY_VARIANT, BML_EMBEDDED_BLOCKS_ON_SUBBLOCK, BML_EXPRESSION_PARSE_ERROR, BML_EXPR_NOT_ALLOWED_IN_INTERPOLATION, BML_EXPR_SYNTAX_ERROR, BML_EXPR_TYPE_MISMATCH, BML_GENERIC_CONSTRAINT_VIOLATION, BML_GENERICS_ARGUMENT_MISMATCH, BML_GENERICS_DIRECTIVE_NOT_ALLOWED, BML_INVALID_VALUE, BML_LIBRARY_NESTING_VIOLATION, BML_LIBRARY_RESOLVE_ERROR, BML_MEMBER_COLLISION, BML_MISSING_GENERIC_TYPE_ARGUMENT, BML_MISSING_ID, BML_MISSING_VERSION, BML_NESTED_EMBEDDED_BLOCKS, BML_OPEN_GENERIC_INSTANCE, BML_OVERRIDE_REQUIRED, BML_OVERRIDE_WITHOUT_PARENT, BML_PRESET_CYCLE, BML_READONLY_MEMBER_WRITE, BML_SUBBLOCK_TYPE_MISMATCH, BML_TYPE_BOUND_NOT_SATISFIED, BML_UNRESOLVABLE_INSTANCE_REF, BML_UNKNOWN_BASE_TYPE, BML_UNKNOWN_CONTRACT, BML_UNKNOWN_TYPE, BML_UNKNOWN_PROPERTY, BML_UNKNOWN_VERSION, BML_VISIBILITY_PRIVATE_OVERRIDE (required)
|
|
41
|
+
</documentation>
|
|
44
42
|
</codes>
|
|
45
43
|
</properties>
|
|
46
|
-
|
|
47
|
-
</block>
|
|
44
|
+
</fwconfig:FrameworkDiagnosticCodes>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
+
<!--Framework Documentation — ArchitectureOverview
|
|
2
|
+
FQN: org.blockml.bml.framework.documentation.ArchitectureOverview-->
|
|
3
|
+
<fwdocumentation:ArchitectureOverview 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"
|
|
@@ -32,13 +26,15 @@
|
|
|
32
26
|
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
|
|
33
27
|
xmlns:doc="org.blockml.bml.documentation">
|
|
34
28
|
|
|
35
|
-
<
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
<is>
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
29
|
+
<baseType>
|
|
30
|
+
core:Documentation
|
|
31
|
+
</baseType>
|
|
32
|
+
<is>
|
|
33
|
+
Module decomposition for framework utilities
|
|
34
|
+
</is>
|
|
35
|
+
<documentation>
|
|
36
|
+
Module decomposition (packages/framework/src/):
|
|
37
|
+
|
|
42
38
|
registry/type-registry.ts — fwcap:TypeRegistry (register, get, has, keys, size)
|
|
43
39
|
registry/bootstrap.ts — fwcap:BootstrapTypeRegistry, fwcap:DefaultBootstrapPaths
|
|
44
40
|
registry/library-bootstrap.ts — library graph resolution (Library.bml dependencies),
|
|
@@ -52,13 +48,12 @@
|
|
|
52
48
|
fwcap:IsLiteralValue
|
|
53
49
|
validate/validate-versions.ts — fwcap:ValidateVersions
|
|
54
50
|
validate/validate-constraints.ts — fwcap:ValidateConstraints
|
|
55
|
-
|
|
51
|
+
|
|
56
52
|
Internal data-structure types extend framework:FrameworkType.
|
|
57
|
-
Public operations are fwcap:* capabilities
|
|
58
|
-
|
|
53
|
+
Public operations are fwcap:* capabilities.
|
|
54
|
+
</documentation>
|
|
59
55
|
<references>
|
|
60
56
|
<see type="fwdocumentation:PublicApi" relation="ReadNext" />
|
|
61
57
|
<see type="fwcap:TypeRegistry" relation="Defines" />
|
|
62
58
|
</references>
|
|
63
|
-
|
|
64
|
-
</block>
|
|
59
|
+
</fwdocumentation:ArchitectureOverview>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
+
<!--Framework Documentation — ConstraintValidation
|
|
2
|
+
FQN: org.blockml.bml.framework.documentation.ConstraintValidation-->
|
|
3
|
+
<fwdocumentation:ConstraintValidation 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"
|
|
@@ -32,31 +26,32 @@
|
|
|
32
26
|
xmlns:valdocumentation="org.blockml.bml.compiler.validator.documentation"
|
|
33
27
|
xmlns:doc="org.blockml.bml.documentation">
|
|
34
28
|
|
|
35
|
-
<
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
<is>
|
|
39
|
-
|
|
40
|
-
|
|
29
|
+
<baseType>
|
|
30
|
+
core:Documentation
|
|
31
|
+
</baseType>
|
|
32
|
+
<is>
|
|
33
|
+
validateConstraints branch dispatch and embed contexts
|
|
34
|
+
</is>
|
|
35
|
+
<documentation>
|
|
36
|
+
validateConstraints evaluates constraints on the effective member set from
|
|
41
37
|
resolveEffectiveMembers (baseType + contracts + local). Property ValuePresent and other
|
|
42
38
|
ValueConstraints on effective PropertyDefinition are checked against authored local values.
|
|
43
|
-
|
|
39
|
+
|
|
44
40
|
Embed contexts for directly declared constraint BlockInstances:
|
|
45
41
|
block — BlockConstraint (RequiresMember), ValueConstraint (Min/Max/ValuePresent)
|
|
46
42
|
property — PropertyConstraint (MustBeReadOnly), ValueConstraint
|
|
47
43
|
aggregation — AggregationConstraint (AllowedChildType)
|
|
48
44
|
association — AssociationConstraint (NoSelfReference)
|
|
49
45
|
capability — CapabilityConstraint (RequiresImplementation)
|
|
50
|
-
|
|
46
|
+
|
|
51
47
|
Wrong branch for context → BML_CONSTRAINT_TARGET_MISMATCH.
|
|
52
48
|
Unknown constraint type → BML_CONSTRAINT_UNKNOWN.
|
|
53
49
|
Violation → BML_CONSTRAINT_VIOLATION.
|
|
54
|
-
|
|
55
|
-
Fixtures: packages/framework/test/constraints/fixtures/*.bml
|
|
56
|
-
|
|
50
|
+
|
|
51
|
+
Fixtures: packages/framework/test/constraints/fixtures/*.bml
|
|
52
|
+
</documentation>
|
|
57
53
|
<references>
|
|
58
54
|
<see type="fwdocumentation:Diagnostics" relation="ReadNext" />
|
|
59
55
|
<see type="fwcap:ValidateConstraints" relation="Defines" />
|
|
60
56
|
</references>
|
|
61
|
-
|
|
62
|
-
</block>
|
|
57
|
+
</fwdocumentation:ConstraintValidation>
|