diff options
Diffstat (limited to 'lib/envelope.ml')
| -rw-r--r-- | lib/envelope.ml | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/lib/envelope.ml b/lib/envelope.ml deleted file mode 100644 index 1c20c5b..0000000 --- a/lib/envelope.ml +++ /dev/null @@ -1,16 +0,0 @@ -(** Envelope parser for tagged S-expressions. - - Parses commands of the form (tag payload...) where the tag selects which - sublanguage handles the payload. The tag set is open — future sublanguages - (tcl, ppl, acl) just add new tags. *) - -type tagged = { tag : string; payload : Sexplib.Sexp.t } - -let parse (input : Sexplib.Sexp.t) : (tagged, Error.t) Result.t = - match input with - | Sexplib.Sexp.List (Sexplib.Sexp.Atom tag :: rest) -> - let payload = - match rest with [ single ] -> single | many -> Sexplib.Sexp.List many - in - Ok { tag; payload } - | s -> Error (Error.MalformedExpression s) |
