In the previous sections, we have indicated that constructs such as guards, replicators, conditionals, variables and index ranges are syntactic conveniences to permit concise descriptions. Models described using these constructs can be syntactically transformed into a more basic form of FSP. This basic form of FSP uses only the process operators and the primitive local processes END, STOP and ERROR. The syntax of basic FSP is described by the following productions:
BProcessDef: BProcessBody AlphabetExtensionopt Relabelopt Hidingopt . BProcessBody: ProcessIdent = BLocalProcess BProcessBody , ProcessIdent = BLocalProcess BLocalProcess: BBaseProcess ( BChoice ) BBaseProcess: END STOP ERROR ProcessIdent ProcessIdent ; BBaseProcess BChoice: ActionLabel -> BLocalProcess BChoice | ActionLabel -> BLocalProcess BCompositeDef: || ProcessIdent = BCompositeBody Priorityopt Hidingopt. BCompositeBody: ProcessIdent Relabelopt ( BParallelComposition ) Relabelopt BParallelComposition: BCompositeBody BParallelComposition || BCompositeBody
A formal semantics for basic FSP is presented in Appendix C.