Research Article

Formal Specification Based Automatic Test Generation for Embedded Network Systems

Pseudocode 8

BNF for function and requirement declerations.
function-file-declaration::= “Bundled” class-name extern-declaration function-declaration
function-declaration::=
  “Function” function-name
    (constant-declaration  ∣ data-declaration ∣ variable-declaration ∣ timer-declaration)*
    “Require” (requirement-declaration “;”)+
requirement-declaration::= invariant ∣ transition-requirement
invariant::= expr
transition-requirement::= pre-condition “:” event “:”
    (post-condition ∣ (action (“,” ∣ action)*)  ∣ (post-condition “,” (action (“,” ∣ action)*)))
precondition::= expr
postcondition::= expr
event::= channel-name “?” expr ∣ timer-name “?” “over” ∣ “null”
action::= channel-name “!” expr ∣ timer-name “!” “clear” ∣ timer-name “!” “start”