GitXplorerGitXplorer
e

pi2go

public
2 stars
0 forks
0 issues

Commits

List of commits on branch master.
Unverified
560f1df468b4a65bcccc5cb91bc70ab964a3b42b

enforce case on channel names and proc names

eebuchman committed 9 years ago
Unverified
786d1b1e79598f66e76cdcacfd2e988030c9f8bc

use SLMC grammar

eebuchman committed 9 years ago
Unverified
18c996d31a95ced52e381e1cdade14b1422b6c2f

start compiler

eebuchman committed 9 years ago
Unverified
06a67886dc5f860fc7386d06f5c1685518eaba7f

use slice types instead of struct{slice}

eebuchman committed 9 years ago
Unverified
4f8b3e8daf5974e8b2ccd03d0de30d0ad1ac3342

parse one-liners

eebuchman committed 9 years ago
Unverified
889492d744ad0d7f63e70a99901af4644274086a

Initial commit

eebuchman committed 9 years ago

README

The README file for this repository.

pi2go

Compile pi calculus expressions to golang

We use a syncronous pi calculus with parametric recursion. The grammar is taken from SLMC

lower = ['a'-'z']
upper = ['A'-'Z']
letter = lower | upper
digit  = ['0'-'9']
name = lower (letter | digit | '_')*
namelist := 	epsilon | name (',' name)*
prefix 	:=	name!(namelist)
	|	name?(namelist)
	|	[name = name]
	|	[name != name]
	| 	tau
process := 	0
	|	process | process
	| 	'new' namelist 'in' process
	|	prefix.process
	| 	select{ prefix.process (';' prefix.process)* }
	|	CapsID(namelist)
	| 	( process )
cmd := 'defproc' CapsID(namelist) = process ['and' CapsID(namelist) = process]*;

Roadmap

  • parse multiple lines (sequence of processes)
  • compiler