Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nickng/sesstype
Parser and library for the sesstype type language in Go
https://github.com/nickng/sesstype
development session-types
Last synced: about 2 months ago
JSON representation
Parser and library for the sesstype type language in Go
- Host: GitHub
- URL: https://github.com/nickng/sesstype
- Owner: nickng
- License: apache-2.0
- Created: 2017-12-08T16:31:43.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2017-12-18T01:37:03.000Z (about 7 years ago)
- Last Synced: 2024-11-05T15:52:43.151Z (3 months ago)
- Topics: development, session-types
- Language: Go
- Homepage:
- Size: 38.1 KB
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sesstype [![Build Status](https://travis-ci.org/nickng/sesstype.svg?branch=master)](https://travis-ci.org/nickng/sesstype) [![GoDoc](https://godoc.org/go.nickng.io/sesstype?status.svg)](http://godoc.org/go.nickng.io/sesstype)
`sesstype` is a parser and library for the `sesstype` type language.
The `sesstype` type language for Multiparty Session Types is defined in
[sesstype](https://github.com/nickng/sesstype.rs#parser).To get:
go get -u go.nickng.io/sesstype/...
By default the `parse-sesstype` command will also be installed.
## Syntax
The basic syntax of `sesstype` language is given below, for details see
[godoc](https://godoc.org/go.nickng.io/sesstype)### Global Types
G ::= P->Q: { l(U).G , ... } Interaction between P and Q with message l(U)
| *T.G Recursion with label T, body G
| T Type variable
| end End type### Local Types
L ::= Q &{ ?l(U).L, ... } Branching, receive l(U) from role Q
| P +{ !l(U).L, ... } Selection, send l(U) to role P
| *T.L Recursion with label T, body L
| T Type variable
| end End type## License
`sesstype` is licensed under the [Apache License](http://www.apache.org/licenses/LICENSE-2.0).