Scrall doesn't parse the desired expression:
flots ..= a/R1/Flot + b/R2/R3/Flot
or even
flots ..= x + y
Both operations are intended to produce the union of two instance reference sets which assumes they are both defined by the same modeled class.
This is because the ..= symbol cause sthe expression to be processed as an instance assignment which operates only on instance sets. But an instance set is a thing like a path or a selection. There is no provision in the grammar to represent an instance computation as we have in a scalar assignment / expression.
Workaround:
User can either do the magic in a select expression, possibly more awkward, or cast members to relation (table) flows, apply the union operator + and then cast back to instance references. Like this:
flot table #= x + y // use table union operator to produce a table output flow
flots ..= flot table // cast that table flow back
Scrall doesn't parse the desired expression:
flots ..= a/R1/Flot + b/R2/R3/Flotor even
flots ..= x + yBoth operations are intended to produce the union of two instance reference sets which assumes they are both defined by the same modeled class.
This is because the ..= symbol cause sthe expression to be processed as an instance assignment which operates only on instance sets. But an instance set is a thing like a path or a selection. There is no provision in the grammar to represent an instance computation as we have in a scalar assignment / expression.
Workaround:
User can either do the magic in a select expression, possibly more awkward, or cast members to relation (table) flows, apply the union operator + and then cast back to instance references. Like this:
flot table #= x + y// use table union operator to produce a table output flowflots ..= flot table// cast that table flow back