Abstract Petri net notation (May 1998)

Terminal symbols are given by lower-case letters, non-terminals by upper-case letters.

NET ::= empty
  | \inputnet{FILENAME}{ID} NET
  | \beginnet{ID} ELEMENT \endnet NET
  | \beginnet{ID} \like{ID} \endnet NET

ELEMENT ::= empty
  | PLACE      ELEMENT
  | TRANSITION ELEMENT
  | ARC        ELEMENT
  | TYPEDEF    ELEMENT
  | \seeML{ FILENAME } ELEMENT
  | FUSION     ELEMENT

ID ::= STRING FILENAME ::= STRING TYPEDEF ::= \typedef{ID}{ COLOURSET } FUSION ::= \fuse{ID}{TYPE}{ID IDLIST} TYPE ::= page | inst | global IDLIST ::= empty | '|' ID IDLIST PLACE ::= \place{ID}{ \like{id} } | \place{ID}{NAME INIT CAP COLOUR P_TYPE PORT COORDS PARTITION EXIT} NAME ::= empty | \name{ STRING } INIT ::= empty | \init{ MULTISET } CAP ::= empty | \capacity{ MULTISET } COLOUR ::= empty | \colour{ COLOURSET } P_TYPE ::= empty | \substitute{ID} | \queue{immediate} SCHED \weight{ TUPLEEXPR } | \queue{timed} SCHED \weight{ TUPLEEXPR } SCHED ::= empty | \sched{STRING} SCHED | \noserver{ INTEGER } SCHED | \rank{ INTEXPR } SCHED | \prio{ INTEXPR } SCHED PORT ::= empty | \port{in} | \port{out} | \port{io} PARTITION ::= \partition{ STRING } EXIT ::= empty | \exit TRANSITION ::= \transition{ID}{ \like{ID} } | \transition{ID}{ NAME T_TYPE PRIO T_WEIGHT GUARD PORT COORDS EXIT T_TYPE ::= empty | \substitute{ID} | \invoke{ID} PRIO ::= empty | \prio{ INTEGER } T_WEIGHT ::= empty | \weight{ REALEXPR } GUARD ::= empty | \guard{ BOOLEXPR } \end{verbatim} ARC ::= \arc{ID}{ \from{ID} \to{ID} WEIGHT A_TYPE BIND COORDS_LIST } WEIGHT ::= empty | \weight{ MULTISETEXPR } A_TYPE ::= empty | \type{ordinary} | \type{inhibitor} BIND ::= empty | \bind{ID} CONT \with{ID} CONT CONT ::= empty | \cont{ID} CONT INTEXPR ::= \like{ID} | ML-EXPRESSION REALEXPR ::= \like{ID} | ML-EXPRESSION BOOLEXPR ::= \like{ID} | ML-EXPRESSION TUPLEEXPR ::= \like{ID} | ML-EXPRESSION MULTISETEXPR ::= \like{ID} | ML-EXPRESSION COLOURSET ::= \like{ID} | ML-DEFINITION TYPEDEF ::= \typedef{ID}{ ML-DEFINITION } COORDS_LIST ::= empty | COORDS COORDS_LIST COORDS ::= empty | \coords{INTEGER,INTEGER} Start-symbol: NET



Falko Bause, Peter Buchholz, Peter Kemper
LS Informatik IV
, Universität Dortmund