d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder\begin{verbatim}
d7db9d1741d9e292b217161f8fbbad8368625c04Christian MaederBASIC-SPEC ::= basic-spec BASIC-ITEMS*
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian MaederBASIC-ITEMS ::= channel-items CHANNEL-ITEM+
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | process-items PROCESS-ITEM+
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | ...
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian MaederCHANNEL-ITEM ::= channel-item CHANNEL+ SORT
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian MaederPROCESS-ITEM ::= process-decl PROCESS-NAME PROCESS-PROFILE
d50927e6f3214849a363476e536e738ea9265d13Christian Maeder | process-eq PROCESS-NAME VAR* PROCESS
d50927e6f3214849a363476e536e738ea9265d13Christian Maeder | process-defn PROCESS-NAME ARG-DECL* ALPHABET PROCESS
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian MaederPROCESS-PROFILE ::= process-profiles SORT* ALPHABET
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian MaederALPHABET ::= alphabet SORT-OR-CHANNEL*
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d50927e6f3214849a363476e536e738ea9265d13Christian MaederSORT-OR-CHANNEL ::= SORT
d50927e6f3214849a363476e536e738ea9265d13Christian Maeder | CHANNEL
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | sorted-channel CHANNEL SORT
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian MaederCHANNEL ::= SORT-ID
d7db9d1741d9e292b217161f8fbbad8368625c04Christian MaederPROCESS-NAME ::= SORT-ID
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian MaederPROCESS ::= skip
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | stop
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | div
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | run EVENT-SET
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | choas EVENT-SET
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | cond-process FORMULA PROCESS PROCESS
d50927e6f3214849a363476e536e738ea9265d13Christian Maeder | process-call PROCESS-SYMB TERM*
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | hiding PROCESS EVENT-SET
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | renaming PROCESS RENAMING
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | event-process EVENT PROCESS
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | term-event TERM PROCESS
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | prefix-ext-choice VAR SORT PROCESS
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | prefix-int-choice VAR SORT PROCESS
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | sequence PROCESS PROCESS
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | ext-choice PROCESS PROCESS
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | int-choice PROCESS PROCESS
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | generalized PROCESS EVENT-SET PROCESS
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | alphabetized PROCESS EVENT-SET EVENT-SET PROCESS
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | synchronous PROCESS PROCESS
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | interleaved PROCESS PROCESS
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian MaederEVENT-SET ::= event-set SORT-OR-CHANNEL*
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d50927e6f3214849a363476e536e738ea9265d13Christian MaederPROCESS-SYMB ::= PROCESS-NAME
d50927e6f3214849a363476e536e738ea9265d13Christian Maeder | qual-process-name PROCESS-NAME PROCESS-PROFILE
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
91cf66b5643f3539dc4155bbcc4ac34c2a4857f4Christian MaederRENAMING ::= renaming RENAME+
91cf66b5643f3539dc4155bbcc4ac34c2a4857f4Christian Maeder
91cf66b5643f3539dc4155bbcc4ac34c2a4857f4Christian MaederRENAME ::= id ID
91cf66b5643f3539dc4155bbcc4ac34c2a4857f4Christian Maeder | opId ID
91cf66b5643f3539dc4155bbcc4ac34c2a4857f4Christian Maeder | predId ID
91cf66b5643f3539dc4155bbcc4ac34c2a4857f4Christian Maeder | totalOp ID SORT SORT
91cf66b5643f3539dc4155bbcc4ac34c2a4857f4Christian Maeder | partialOp ID SORT SORT
91cf66b5643f3539dc4155bbcc4ac34c2a4857f4Christian Maeder | binPredicate ID SORT SORT
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder
d7db9d1741d9e292b217161f8fbbad8368625c04Christian MaederEVENT ::= read-event CHANNEL VAR SORT
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | write-event CHANNEL VAR SORT
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder | write-term CHANNEL TERM
d7db9d1741d9e292b217161f8fbbad8368625c04Christian Maeder\end{verbatim}