-- SakuraProductions.pgs
-- The following productions will be added to Mesa productions

transfermode ::= DEVICE

block ::= { devicehead devicebody }
devicehead ::= indecl outdecl guardian
indecl ::= IN decseries
outdecl ::= OUT decseries
guardian ::= GUARDIAN block
devicebody ::= statedecl dataflowdecl control
statedecl ::= STATE decseries
dataflowdecl ::= DATAFLOW transferseries
control ::= CONTROL block

transferseries ::= 
transferseries ::= transferseries ; transfer

transfer ::= lhs <= exp

statement ::= parallel
parallel ::= PAR { parlist }
parlist ::= statement
parlist ::= parlist // statement

statement ::= guardedcommandlist
guardedcommandlist ::= guardedcommand
guardedcommandlist ::= guardedcommandlist || guardedcommand
guardedcommand ::= WHEN event -> statement

statement ::= on
on ::= ON event -> statement IN statement
event ::= updownsignal
event ::= updownsignal AND expression
updownsignal ::= lhs UP
updownsignal ::= lhs DOWN