Skip to content

Commit

Permalink
Allow setting of single message fields in sessions
Browse files Browse the repository at this point in the history
Ref. #1067
  • Loading branch information
treiher committed Jun 9, 2022
1 parent f474b45 commit 62882c1
Show file tree
Hide file tree
Showing 52 changed files with 7,377 additions and 406 deletions.
48 changes: 47 additions & 1 deletion doc/Language-Reference.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -739,7 +739,7 @@ The state actions are executed after entering a state.

[subs="+macros,quotes"]
----
[[syntax-state_action]]state_action ::= ( xref:syntax-assignment[assignment] | xref:syntax-append[append] | xref:syntax-extend[extend] | xref:syntax-reset[reset] | xref:syntax-read[read] | xref:syntax-write[write] ) *;*
[[syntax-state_action]]state_action ::= ( xref:syntax-assignment[assignment] | xref:syntax-message_field_assignment[message_field_assignment] | xref:syntax-append[append] | xref:syntax-extend[extend] | xref:syntax-reset[reset] | xref:syntax-read[read] | xref:syntax-write[write] ) *;*
----

===== Assignment Statements
Expand Down Expand Up @@ -788,6 +788,52 @@ An assignment always creates a copy of the original object.
Error_Sent := True
----

===== Message Field Assignment Statements

// Message Field Assignment Statements [§S-S-A-MFA]

A message field assignment sets the value of a message field.

*Syntax*

[subs="+macros,quotes"]
----
[[syntax-message_field_assignment]]message_field_assignment ::= variable_xref:syntax-name[name] *.* field_xref:syntax-name[name] *:=* xref:syntax-expression[expression]
----

// *Static Semantics*
//
// Expressions:
//
// * Mathematical Expressions [§S-S-A-MFA-ME]
// * Boolean Expressions [§S-S-A-MFA-BE]
// * Literals [§S-S-A-MFA-L]
// * Variables [§S-S-A-MFA-V]
// * Message Aggregates [§S-S-A-MFA-MA]
// * Aggregates [§S-S-A-MFA-A]
// * Valid Attributes [§S-S-A-MFA-VAT]
// * Opaque Attributes [§S-S-A-MFA-OAT]
// * Size Attributes [§S-S-A-MFA-SAT]
// * Head Attributes [§S-S-A-MFA-HAT]
// * Has_Data Attributes [§S-S-A-MFA-HDAT]
// * Selected Expressions [§S-S-A-MFA-S]
// * List Comprehensions [§S-S-A-MFA-LC]
// * Bindings [§S-S-A-MFA-B]
// * Quantified Expressions [§S-S-A-MFA-Q]
// * Calls [§S-S-A-MFA-CL]
// * Conversions [§S-S-A-MFA-CV]

*Dynamic Semantics*

Message fields must be set in order. Trying to set a message field which is not a valid next field leads to an exception transition. All subsequent fields of the set message field are invalidated.

*Example*

[source,ada,rflx,message_field_assignment_statement]
----
Packet.Length := 42
----

===== Append Attribute Statements

// Append Attribute Statements [§S-S-A-AP]
Expand Down
Loading

0 comments on commit 62882c1

Please sign in to comment.