Research Article

Formal Specification Based Automatic Test Generation for Embedded Network Systems

Pseudocode 7

BNF for variable, channel, and timer declarations.
data-declaration::= “Data” (type-name “{” value (“,”value)* “};”
variable-declaration::=“Var”
 (variable-name “:” type-name (“{” value “}”)? (test-declaration)? “;”
 ∣ variable-name “ ” number “..” number “ ” “:” type-name(“{” value (“,” value)* “}”)? (test-declaration)? “;”
 ∣ variable-name “:” (“int” ∣ “double”)
   (“ ” min-value “,” max-value “ ”)? (“{” value “}”)?(test-declaration)? “;”
 ∣ variable-name “ ” number “..” number “ ” “:” (“int” ∣ “double”)
   (“ ” min-value “,” max-value “ ”) ? (“{”value (“,” value)*“}”)?(test-declaration)? “;”
 )+
test-declaration::=  “testedwith” “{” (number ∣ number “..” number (“(” number “)”)?)
   (“,” (number ∣ number “..” number (“(“ number “)”)?) )* “}”
channel-declaration::=  “Channel” (channel-name “:” type-name “;” 
   ∣ (channel-name “ ” number “..” number “ ” “:” type-name “;”) +
timer-declaration:: =
  “Timer” (timer-name number unit “ ” predicate “ “;”
   ∣timer-name (number unit “ ” predicate “ ,”)*number unit “ ” predicate “ ”) “;”)+
unit::= “msec” ∣ “sec” ∣ “min” ∣ “hour” ∣ “day”