Process Analyzer Prototype

Supported syntax:

      e ::= n | (e) | x | ? | - e | e1 + e2 | e1 - e2 | e1 * e2
      b ::= true | false | ! b | (b) | b and b | e = e | e == e | e < e | e <= e
  block ::= stmt | stmt; block | { block }
   stmt ::= x = e
         |  if b then block else block
         |  while b block
         |  choose { block | ... | block }
         |  ch?x
         |  ch!e
         |  stop
      p ::= spawn id() block

Input processes:

     

Result: