Blindingly Simple Protocol Language (BSPL) Go parser.
This repository also contains interfaces for a BSPL reasoner (reason package) and an implementation of some components of that reasoner (implementation package).
This implementation is used in another project.
-
parser: Standalone BSPL parser implemented using a toy lexer I wrote a while ago. -
proto: Go structures to form a BSPL protocol, e.g.,Protocol,RoleandAction. -
reason: Interface definition for implementing a reasoner and protocol instances. -
implementation: Draft implementation to use in another project.
Production use of this project is not advised as it is far from ready.
-
config: Contains the automaton fed to the lexer to process a BSPL protocol. -
test: Test resources.
-
Define a valid protocol in a file with path
path. -
Open the file and pass the reader to
bspl.Parse()
package main
import (
"fmt"
"os"
"github.com/mikelsr/bspl"
)
func main() {
source, err := os.Open(path)
if err != nil {
panic(err)
}
protocol, err := bspl.Parse(source)
if err != nil {
panic(err)
}
fmt.Println(protocol)
}- Done!
- Remove messages (✓)
The Message struct is redundant: the ocurred action can be derived from
the outputted values from the previous state of the instance to the current
one.