Expressions
Generated from the sysml-rs language pack — see the Language Reference index for provenance, licensing, and the raw JSON. 37 cards.
Additive Operator
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
KerML — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
Expressions — kerml.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
KerML — kerml.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
KerML — kerml.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
KerML — kerml.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
KerML — kerml.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
SysML — sysml.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
SysML — sysml.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
SysML — sysml.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
SysML — sysml.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