Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Expressions

Generated from the sysml-rs language pack — see the Language Reference index for provenance, licensing, and the raw JSON. 37 cards.

Additive Operator

Expressionskerml.expression.additive-operator

The additive operator groups expression operands with precedence level 13 of 16 (higher binds tighter); it is left-associative. Symbols: + -.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

And Operator

Expressionskerml.expression.and-operator

The and operator groups expression operands with precedence level 6 of 16 (higher binds tighter); it is left-associative. Symbols: &.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Cast Operator

Expressionskerml.expression.cast-operator

The cast operator groups expression operands with precedence level 10 of 16 (higher binds tighter); it is left-associative. Symbols: as.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

ClassificationTest Operator

Expressionskerml.expression.classification-test-operator

The classificationtest operator groups expression operands with precedence level 8 of 16 (higher binds tighter); it is left-associative. Symbols: hastype istype @.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

ConditionalAnd Operator

Expressionskerml.expression.conditional-and-operator

The conditionaland operator groups expression operands with precedence level 6 of 16 (higher binds tighter); it is left-associative. Symbols: and.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Conditional Operator

Expressionskerml.expression.conditional-operator

The conditional operator groups expression operands with precedence level 1 of 16 (higher binds tighter); it is left-associative. Symbols: if.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

ConditionalOr Operator

Expressionskerml.expression.conditional-or-operator

The conditionalor operator groups expression operands with precedence level 4 of 16 (higher binds tighter); it is left-associative. Symbols: or.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Constructor Expression

Expressionskerml.expression.constructor

A constructor expression (new T(args)) instantiates a type, binding some or all of its features to the argument results. The new keyword is the discriminator: new Widget(size = 1) lowers to a distinct ConstructorExpression (a subclass of InstantiationExpression), whereas the un-prefixed Widget(size = 1) lowers to a plain InvocationExpression.

package P { part def Widget { attribute size; } part a { attribute x = new Widget(size = 1); } }

Normative clauses: KerML §8.3.4.8.3

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Equality Operator

Expressionskerml.expression.equality-operator

The equality operator groups expression operands with precedence level 7 of 16 (higher binds tighter); it is left-associative. Symbols: == != === !==.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Exponentiation Operator

Expressionskerml.expression.exponentiation-operator

The exponentiation operator groups expression operands with precedence level 15 of 16 (higher binds tighter); it is right-associative. Symbols: ** ^.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Feature Reference Expression

Expressionskerml.expression.feature-reference

A feature reference expression names a feature to yield its value — the way one feature’s value is read into another expression. It is written as the referenced feature’s name.

package P { attribute y = 1; attribute x = y; }

Normative clauses: KerML §8.3.4.8.5

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Feature Value

KerMLkerml.expression.feature-value

A feature value binds a feature to the result of an expression, either as an initial value or a fixed binding. The value’s type must be compatible with the feature.

package P { attribute a = 5; }

Normative clauses: KerML §8.3.4.10.2

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Related: Calculation (Library Definition)

Implies Operator

Expressionskerml.expression.implies-operator

The implies operator groups expression operands with precedence level 3 of 16 (higher binds tighter); it is left-associative. Symbols: implies.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Invocation Expression

Expressionskerml.expression.invocation

An invocation expression applies a function or calculation to argument expressions, binding each argument to a parameter and producing a result. Arguments may be positional.

package P { calc def Add { in a; in b; return a + b; } part def Q { attribute r = Add(1, 2); } }

Normative clauses: KerML §8.3.4.8.8

Support (sysml-rs): parse ✓ · resolve ✓ · elaborate unknown · execute unknown

Boolean Literal

Expressionskerml.expression.literal-boolean

A boolean literal is one of the two truth constants, true or false.

package P { attribute x = true; }

Normative clauses: KerML §8.3.4.8.9

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Infinity Literal

Expressionskerml.expression.literal-infinity

The infinity literal, written *, denotes an unbounded value — most often the upper bound of an unbounded multiplicity.

package P { attribute x = *; }

Normative clauses: KerML §8.3.4.8.11

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Integer Literal

Expressionskerml.expression.literal-integer

An integer literal is a whole-number constant expression, such as 42. It is the simplest literal value a feature can be given.

package P { attribute x = 5; }

Normative clauses: KerML §8.3.4.8.12

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Real Literal

Expressionskerml.expression.literal-real

A real literal is a rational-number constant expression written with a decimal point, such as 3.14. Its grammar rule is LiteralReal; it lowers to the engine’s LiteralRational kind.

package P { attribute x = 3.14; }

Normative clauses: KerML §8.3.4.8.13

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

String Literal

Expressionskerml.expression.literal-string

A string literal is a text constant expression enclosed in double quotes, such as “hello”.

package P { attribute x = "hi"; }

Normative clauses: KerML §8.3.4.8.14

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

MetaCast Operator

Expressionskerml.expression.meta-cast-operator

The metacast operator groups expression operands with precedence level 10 of 16 (higher binds tighter); it is left-associative. Symbols: meta.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

MetaClassificationTest Operator

Expressionskerml.expression.meta-classification-test-operator

The metaclassificationtest operator groups expression operands with precedence level 9 of 16 (higher binds tighter); it is left-associative. Symbols: @@.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Metadata Access Expression

Expressionskerml.expression.metadata-access

A metadata access expression, written element.metadata, yields the metadata annotations attached to an element as a value. It lowers to a distinct MetadataAccessExpression.

metadata def M; part def P { attribute a = P.metadata; }

Normative clauses: KerML §8.3.4.8.15

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Multiplicative Operator

Expressionskerml.expression.multiplicative-operator

The multiplicative operator groups expression operands with precedence level 14 of 16 (higher binds tighter); it is left-associative. Symbols: * / %.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

NullCoalescing Operator

Expressionskerml.expression.null-coalescing-operator

The nullcoalescing operator groups expression operands with precedence level 2 of 16 (higher binds tighter); it is left-associative. Symbols: ??.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Null Expression

Expressionskerml.expression.null-expression

A null expression, written null, denotes the absence of a value — an empty result with no elements.

package P { attribute x = null; }

Normative clauses: KerML §8.3.4.8.16

Support (sysml-rs): parse ✓ · resolve unknown · elaborate unknown · execute unknown

Or Operator

Expressionskerml.expression.or-operator

The or operator groups expression operands with precedence level 4 of 16 (higher binds tighter); it is left-associative. Symbols: |.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Relational Operator

Expressionskerml.expression.relational-operator

The relational operator groups expression operands with precedence level 11 of 16 (higher binds tighter); it is left-associative. Symbols: < > <= >=.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Unary Operator

Expressionskerml.expression.unary-operator

The unary operator groups expression operands with precedence level 16 of 16 (higher binds tighter); it is a prefix unary operator. Symbols: + - ~ not.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Xor Operator

Expressionskerml.expression.xor-operator

The xor operator groups expression operands with precedence level 5 of 16 (higher binds tighter); it is left-associative. Symbols: xor.

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Constraint Result Boolean

KerMLkerml.validation.constraint-result-boolean

A constraint/predicate produces exactly one Boolean result; a non-Boolean result is not a valid verdict.

Normative clauses: KerML §7.4.8

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Core Operator Semantics

KerMLkerml.validation.core-operator-semantics

Constraint (Boolean) expressions evaluate comparison/logical/arithmetic operators per KerML expression semantics.

Normative clauses: KerML §7.4.8

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Feature Ref Resolves To Bound Value

KerMLkerml.validation.feature-ref-resolves-to-bound-value

A feature reference in a constraint evaluates to the value bound to that feature.

Normative clauses: KerML §8.3.4.8.5

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Unbound Feature Yields Inconclusive Not False

KerMLkerml.validation.unbound-feature-yields-inconclusive-not-false

An unresolved feature reference evaluates to the empty list; the result is not false. The behavior of an ordering comparison over an empty operand is spec-silent.

Normative clauses: KerML §8.3.4.8.5

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Assert Constraint Must Be True

SysMLsysml.validation.assert-constraint-must-be-true

A non-negated assert constraint asserts its result is true at all times; a false result is a logical inconsistency the tool flags.

Normative clauses: SysML §7.20

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Constraint Satisfied Iff True

SysMLsysml.validation.constraint-satisfied-iff-true

A constraint usage is satisfied iff its expression evaluates to true, and violated otherwise.

Normative clauses: SysML §7.20

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Constraint Usage Discovered

SysMLsysml.validation.constraint-usage-discovered

A ConstraintUsage and an AssertConstraintUsage are both surfaced as evaluable constraints.

Normative clauses: SysML §7.20

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown

Negated Assert Must Be False

SysMLsysml.validation.negated-assert-must-be-false

A negated assert not constraint asserts its result is false; a true result is the inconsistency.

Normative clauses: SysML §7.20

Support (sysml-rs): parse unknown · resolve unknown · elaborate unknown · execute unknown