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
,Role
andAction
. -
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.