Research Article

Formal Specification Based Automatic Test Generation for Embedded Network Systems

Pseudocode 5

BNF for main class declaration.
main-class-file-declaration:: = import-declaration main-class-declaration
import-declaration:: = “Import” (‘”’file-name‘”’ “,”)+ “;”
main-class-declaration:: = “Class main”
    (constant-declaration ∣ data-declaration∣ env-instance-declaration
    ∣ channel-declaration ∣ timer-declaration)+
    (invariant-declaration)?
env-instance-declaration:: = “Var” (env-variable-declaration ∣ instance-declaration)+
env-variable-declaration:: =
env-variable-name “:” type-name (“{” value “}”)? (test-declaration)? “;”
∣ env-variable-name “ ” number “..” number “ ” “:” type-name (“{“value (“,” value)* “}”)? (test-declaration)? “;”
∣ env-variable-name “:” (“int” ∣ “double”)
      (“ “min-value “,” max-value “ ”)? (“{”value“}”)? (test-declaration)? “;”
∣ env-variable-name “ “number “..” number“ ” “:” (“int” ∣ “double”)
    (“ ”min-value “,” max-value “ ”)? (“{”value (“,” value)* “}”)? (test-declaration)? “;”
instance-declaration::=
object-name “:” class-name (“(” parameter-value (“,” parameter-value)* “)”)? “;”
∣ object-name “ ” number “..” number “ ” “:” class-name
(“{” “(”value (“,” value)* “)” (“,” “(” value (“,” value)* “)”)* “}”)? “;”
invariant-declaration::= “Inv” (expr “;”)+