Support all Behavior Annex external-condition logical expressions 馃 - #3219
Merged
Conversation
Model an external condition that combines ordinary, exclusive, and short-circuit logical operators with a parenthesized event-trigger group. Assert exact declarative and strict expression structure, event and event-data port resolution, and serializer round-trip preservation.
Accept xor, short-circuit operators, and recursive parenthesized groups in mode-switch conditions. Preserve operator choices and nested group structure in the declarative and strict models, regenerate the EMF and Xtext artifacts, and update the conformance characterization baselines.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #3166
Behavior Annex external conditions now accept and preserve
xor,and then,or else, and recursively parenthesized event-trigger expressions.Cause and correction
ModeSwitchConditionpreviously represented only OR-separated conjunctions of reference leaves. It therefore could not parse grouping or retain the complete D.7 logical-operator set.The grammar now stores the operator at both precedence levels and introduces recursive mode-switch triggers. The strict BA model mirrors that structure, and
DeclarativeToStrictTranslatorpreserves each operator and nested group while resolving event and event-data ports. EMF and Xtext artifacts were regenerated, and the #3166 conformance expectations and characterization goldens are updated.Regression coverage
Issue3166Testmodels one external condition combining ordinary, exclusive, and short-circuit operators with a parenthesized group. It verifies:The existing
ExternalConditionXor.aadlandExternalConditionGrouping.aadlconformance expectations are enabled.Validation
All Maven commands used
-T5.Issue3166Test: 2 tests, 0 failures, 0 errors, 0 skipped.BehaviorAnnexConformanceTest: 12 tests, 0 failures, 0 errors, 2 existing tracked skips.org.osate.ba.testssuite: 133 tests, 0 failures, 0 errors, 2 existing tracked skips.-Dtycho.localArtifacts=ignore: all 143 modules succeeded in 2:15.Dependencies and residual risk
No dependent PRs; this branch is based directly on
origin/masterat7fb3251c3a. The broad generated-parser diff is the output of the manual Xtext generation step. Downstream BA, Xtext integration, graphical editor, and complete root-reactor validation passed.