Skip to content

Instantly share code, notes, and snippets.

@steshaw
Created December 21, 2016 08:29
Show Gist options
  • Save steshaw/e7e4eab3c4fa858ed0a08227b7877f08 to your computer and use it in GitHub Desktop.
Save steshaw/e7e4eab3c4fa858ed0a08227b7877f08 to your computer and use it in GitHub Desktop.
Output from parsec-free for simple-pretty.nix
This file has been truncated, but you can view the full file.
(NSet [NamedVar [StaticKey "a"] (NConstant (NInt 3)),NamedVar [StaticKey "b"] (NConstant (NInt 4)),NamedVar [StaticKey "c"] (NSet [Inherit (Just (NSet [NamedVar [StaticKey "a"] (NConstant (NInt 3))])) [StaticKey "a"],NamedVar [StaticKey "e"] (NConstant (NInt 4)),NamedVar [StaticKey "f"] (NConstant (NInt 5))]),NamedVar [StaticKey "d"] (NIf (NConstant (NBool True)) (NSet [NamedVar [StaticKey "a"] (NConstant (NInt 1)),NamedVar [StaticKey "b"] (NConstant (NInt 2)),NamedVar [StaticKey "c"] (NConstant (NInt 3))]) (NIf (NConstant (NBool False)) (NConstant NNull) (NSet [Inherit (Just (NSet [NamedVar [StaticKey "a"] (NConstant (NInt 3)),NamedVar [StaticKey "b"] (NConstant (NInt 4)),NamedVar [StaticKey "cdefgads"] (NConstant (NInt 5))])) [StaticKey "cdefgads"]]))),NamedVar [StaticKey "f"] (NAbs (Param "x") (NSym "x")),NamedVar [StaticKey "list"] (NList [(NConstant (NInt 1)),(NConstant (NInt 2)),(NApp (NSym "f") (NConstant (NInt 3))),(NApp (NAbs (Param "x") (NSym "x")) (NConstant (NInt 3))),(NList [(NConstant (NInt 4)),(NConstant (NInt 5))])])])
Result => ()
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
+ char '{'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (string "...")
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'a'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (char '?')
+ return
parserPlus
- (char ',')
+ return
(char '}')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
- (label "null")
(try)
(string "null")
+ parserPlus
- (label "parens")
(char '(')
+ parserPlus
- (label "list")
(char '[')
+ parserPlus
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
+ parserPlus
- (label "spath")
(try)
(char '<')
+ parserPlus
- (try)
(label "letter")
(satisfy)
+ parserPlus
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ parserPlus
+ label "set"
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
char '{'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'a'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
+ label "integer"
label "digit"
satisfy => '3'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'b'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
+ label "integer"
label "digit"
satisfy => '4'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'c'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
+ char '{'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (string "...")
+ parserPlus
- (label "identifier")
(try)
label "identifier"
parserPlus
+ label "letter"
satisfy => 'i'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'n'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'h'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'r'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'i'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 't'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(unexpected "reserved identifier \"inherit\"")
+ return
(char '}')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
- (label "null")
(try)
(string "null")
+ parserPlus
- (label "parens")
(char '(')
+ parserPlus
- (label "list")
(char '[')
+ parserPlus
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
+ parserPlus
- (label "spath")
(try)
(char '<')
+ parserPlus
- (try)
(label "letter")
(satisfy)
+ parserPlus
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ parserPlus
+ label "set"
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
char '{'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
+ label "inherited binding"
try
string "inherit"
label "end of \"inherit\""
notFollowedBy
(parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ label "inherit scope"
char '('
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
+ char '{'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (string "...")
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'a'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (char '?')
+ return
parserPlus
- (char ',')
+ return
(char '}')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
- (label "null")
(try)
(string "null")
+ parserPlus
- (label "parens")
(char '(')
+ parserPlus
- (label "list")
(char '[')
+ parserPlus
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
+ parserPlus
- (label "spath")
(try)
(char '<')
+ parserPlus
- (try)
(label "letter")
(satisfy)
+ parserPlus
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ parserPlus
+ label "set"
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
char '{'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'a'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
+ label "integer"
label "digit"
satisfy => '3'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (parserPlus)
- (label "inherited binding")
(try)
(string "inherit")
- (label "variable binding")
(parserPlus)
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
+ return
char '}'
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ')'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'a'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'e'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
+ label "integer"
label "digit"
satisfy => '4'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'f'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
+ label "integer"
label "digit"
satisfy => '5'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (parserPlus)
- (label "inherited binding")
(try)
(string "inherit")
- (label "variable binding")
(parserPlus)
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
+ return
char '}'
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'd'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
+ parserPlus
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
label "identifier"
parserPlus
+ label "letter"
satisfy => 'i'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'f'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(unexpected "reserved identifier \"if\"")
- (parserPlus)
- (parserPlus)
- (try)
label "letter"
satisfy => 'i'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'f'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
- (parserPlus)
- (label "identifier")
(try)
label "identifier"
parserPlus
+ label "letter"
satisfy => 'i'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'f'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(unexpected "reserved identifier \"if\"")
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
+ parserPlus
- (label "let")
(try)
(string "let")
+ parserPlus
+ label "if"
try
string "if"
label "end of \"if\""
notFollowedBy
(parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
parserPlus
- (try)
label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 't'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'r'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'u'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
(char '@')
+ parserPlus
+ parserPlus
- (try)
label "letter"
satisfy => 't'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'r'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'u'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 't'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'r'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'u'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
(char ':')
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
+ label "bool"
try
parserPlus
+ string "true"
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
+ satisfy => 't'
parserPlus
+ satisfy => 'h'
parserPlus
+ satisfy => 'e'
parserPlus
+ satisfy => 'n'
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
label "letter"
satisfy => 't'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'h'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'n'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
label "identifier"
parserPlus
+ label "letter"
satisfy => 't'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'h'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'n'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(unexpected "reserved identifier \"then\"")
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
try
string "then"
label "end of \"then\""
notFollowedBy
(parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
+ char '{'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (string "...")
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'a'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (char '?')
+ return
parserPlus
- (char ',')
+ return
(char '}')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
- (label "null")
(try)
(string "null")
+ parserPlus
- (label "parens")
(char '(')
+ parserPlus
- (label "list")
(char '[')
+ parserPlus
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
+ parserPlus
- (label "spath")
(try)
(char '<')
+ parserPlus
- (try)
(label "letter")
(satisfy)
+ parserPlus
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ parserPlus
+ label "set"
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
char '{'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'a'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
+ label "integer"
label "digit"
satisfy => '1'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'b'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
+ label "integer"
label "digit"
satisfy => '2'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'c'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
+ label "integer"
label "digit"
satisfy => '3'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (parserPlus)
- (label "inherited binding")
(try)
(string "inherit")
- (label "variable binding")
(parserPlus)
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
+ return
char '}'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
+ satisfy => 'e'
parserPlus
+ satisfy => 'l'
parserPlus
+ satisfy => 's'
parserPlus
+ satisfy => 'e'
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
label "letter"
satisfy => 'e'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'l'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 's'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
label "identifier"
parserPlus
+ label "letter"
satisfy => 'e'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'l'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 's'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(unexpected "reserved identifier \"else\"")
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
try
string "else"
label "end of \"else\""
notFollowedBy
(parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
+ parserPlus
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
label "identifier"
parserPlus
+ label "letter"
satisfy => 'i'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'f'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(unexpected "reserved identifier \"if\"")
- (parserPlus)
- (parserPlus)
- (try)
label "letter"
satisfy => 'i'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'f'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
- (parserPlus)
- (label "identifier")
(try)
label "identifier"
parserPlus
+ label "letter"
satisfy => 'i'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'f'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(unexpected "reserved identifier \"if\"")
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
+ parserPlus
- (label "let")
(try)
(string "let")
+ parserPlus
+ label "if"
try
string "if"
label "end of \"if\""
notFollowedBy
(parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
parserPlus
- (try)
label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'f'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'a'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'l'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 's'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
(char '@')
+ parserPlus
+ parserPlus
- (try)
label "letter"
satisfy => 'f'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'a'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'l'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 's'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'f'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'a'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'l'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 's'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
(char ':')
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
+ label "bool"
try
parserPlus
- (string "true")
+ string "false"
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
+ satisfy => 't'
parserPlus
+ satisfy => 'h'
parserPlus
+ satisfy => 'e'
parserPlus
+ satisfy => 'n'
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
label "letter"
satisfy => 't'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'h'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'n'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
label "identifier"
parserPlus
+ label "letter"
satisfy => 't'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'h'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'n'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(unexpected "reserved identifier \"then\"")
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
try
string "then"
label "end of \"then\""
notFollowedBy
(parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
parserPlus
- (try)
label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'n'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'u'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'l'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'l'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
(char '@')
+ parserPlus
+ parserPlus
- (try)
label "letter"
satisfy => 'n'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'u'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'l'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'l'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'n'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'u'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'l'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'l'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
(char ':')
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
+ label "null"
try
string "null"
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
+ satisfy => 'e'
parserPlus
+ satisfy => 'l'
parserPlus
+ satisfy => 's'
parserPlus
+ satisfy => 'e'
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
label "letter"
satisfy => 'e'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'l'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 's'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
label "identifier"
parserPlus
+ label "letter"
satisfy => 'e'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'l'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 's'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(unexpected "reserved identifier \"else\"")
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
try
string "else"
label "end of \"else\""
notFollowedBy
(parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
+ char '{'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (string "...")
+ parserPlus
- (label "identifier")
(try)
label "identifier"
parserPlus
+ label "letter"
satisfy => 'i'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'n'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'h'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'r'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'i'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 't'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(unexpected "reserved identifier \"inherit\"")
+ return
(char '}')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
- (label "null")
(try)
(string "null")
+ parserPlus
- (label "parens")
(char '(')
+ parserPlus
- (label "list")
(char '[')
+ parserPlus
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
+ parserPlus
- (label "spath")
(try)
(char '<')
+ parserPlus
- (try)
(label "letter")
(satisfy)
+ parserPlus
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ parserPlus
+ label "set"
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
char '{'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
+ label "inherited binding"
try
string "inherit"
label "end of \"inherit\""
notFollowedBy
(parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ label "inherit scope"
char '('
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
+ char '{'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (string "...")
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'a'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (char '?')
+ return
parserPlus
- (char ',')
+ return
(char '}')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
- (label "null")
(try)
(string "null")
+ parserPlus
- (label "parens")
(char '(')
+ parserPlus
- (label "list")
(char '[')
+ parserPlus
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
+ parserPlus
- (label "spath")
(try)
(char '<')
+ parserPlus
- (try)
(label "letter")
(satisfy)
+ parserPlus
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ parserPlus
+ label "set"
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
char '{'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'a'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
+ label "integer"
label "digit"
satisfy => '3'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'b'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
+ label "integer"
label "digit"
satisfy => '4'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'c'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'd'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'f'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'g'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'a'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'd'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 's'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
+ label "integer"
label "digit"
satisfy => '5'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (parserPlus)
- (label "inherited binding")
(try)
(string "inherit")
- (label "variable binding")
(parserPlus)
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
+ return
char '}'
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ')'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'c'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'd'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'e'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'f'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'g'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'a'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'd'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 's'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (parserPlus)
- (label "inherited binding")
(try)
(string "inherit")
- (label "variable binding")
(parserPlus)
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
+ return
char '}'
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'f'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
+ parserPlus
+ label "lambda"
label "lambda arguments"
try
parserPlus
- (try)
label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
(char '@')
+ parserPlus
+ parserPlus
- (try)
label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
char ':'
(parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
char ':'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
parserPlus
- (try)
label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
(char '@')
+ parserPlus
+ parserPlus
- (try)
label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
(char ':')
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
- (label "null")
(try)
(string "null")
+ parserPlus
- (label "parens")
(char '(')
+ parserPlus
- (label "list")
(char '[')
+ parserPlus
- (label "path")
(label "path")
(try)
parserPlus
+ satisfy => 'x'
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
+ parserPlus
- (label "spath")
(try)
(char '<')
+ parserPlus
- (try)
label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
+ parserPlus
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ parserPlus
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ';'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
- (label "inherited binding")
(try)
(string "inherit")
+ label "variable binding"
parserPlus
- (parserPlus)
- (label "\"${\"")
(try)
(string "${")
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'l'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 'i'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 's'
parserPlus
+ parserPlus
+ label "letter or digit"
satisfy => 't'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
char '='
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
- (label "null")
(try)
(string "null")
+ parserPlus
- (label "parens")
(char '(')
+ parserPlus
+ label "list"
char '['
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
+ parserPlus
+ label "integer"
label "digit"
satisfy => '1'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
+ parserPlus
+ label "integer"
label "digit"
satisfy => '2'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
+ parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
- (label "null")
(try)
(string "null")
+ parserPlus
+ label "parens"
char '('
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
parserPlus
- (try)
label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'f'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
(char '@')
+ parserPlus
+ parserPlus
- (try)
label "letter"
satisfy => 'f'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'f'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
(char ':')
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
- (label "null")
(try)
(string "null")
+ parserPlus
- (label "parens")
(char '(')
+ parserPlus
- (label "list")
(char '[')
+ parserPlus
- (label "path")
(label "path")
(try)
parserPlus
+ satisfy => 'f'
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
+ parserPlus
- (label "spath")
(try)
(char '<')
+ parserPlus
- (try)
label "letter"
satisfy => 'f'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
+ parserPlus
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ parserPlus
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'f'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
+ parserPlus
+ label "integer"
label "digit"
satisfy => '3'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ')'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
+ parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
- (label "null")
(try)
(string "null")
+ parserPlus
+ label "parens"
char '('
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
(parserPlus)
- (try)
(label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserPlus)
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
- (parserPlus)
- (char '{')
- (parserZero)
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
- (label "null")
(try)
(string "null")
+ parserPlus
+ label "parens"
char '('
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
+ parserPlus
+ label "lambda"
label "lambda arguments"
try
parserPlus
- (try)
label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
(char '@')
+ parserPlus
+ parserPlus
- (try)
label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
char ':'
(parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
char ':'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (parserPlus)
- (label "lambda")
(label "lambda arguments")
(try)
parserPlus
- (try)
label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
(char '@')
+ parserPlus
+ parserPlus
- (try)
label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
(char ':')
- (parserPlus)
- (label "let")
(try)
(string "let")
- (parserPlus)
- (label "if")
(try)
(string "if")
- (parserPlus)
- (try)
(string "assert")
- (parserPlus)
- (try)
(string "with")
- (parserZero)
+ parserPlus
- (string "!")
+ return
parserPlus
- (string "-")
+ return
parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
- (label "null")
(try)
(string "null")
+ parserPlus
- (label "parens")
(char '(')
+ parserPlus
- (label "list")
(char '[')
+ parserPlus
- (label "path")
(label "path")
(try)
parserPlus
+ satisfy => 'x'
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
+ parserPlus
- (label "spath")
(try)
(char '<')
+ parserPlus
- (try)
label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
(char ':')
+ parserPlus
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
+ parserPlus
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
+ parserPlus
+ label "identifier"
try
label "identifier"
parserPlus
+ label "letter"
satisfy => 'x'
parserPlus
- (parserPlus)
- (label "letter or digit")
(satisfy)
- (satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ')'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
+ parserPlus
+ label "integer"
label "digit"
satisfy => '3'
parserPlus
- (label "digit")
(satisfy)
+ return
parserPlus
- (skipMany1)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
- (parserPlus)
- (label "integer")
(label "digit")
(satisfy)
- (parserPlus)
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
- (parserPlus)
- (label "null")
(try)
(string "null")
- (parserPlus)
- (label "parens")
(char '(')
- (parserPlus)
- (label "list")
(char '[')
- (parserPlus)
- (label "path")
(label "path")
(try)
parserPlus
- (satisfy)
+ return
(label "slash")
(try)
(char '/')
- (parserPlus)
- (label "spath")
(try)
(char '<')
- (parserPlus)
- (try)
(label "letter")
(satisfy)
- (parserPlus)
- (label "string")
(parserPlus)
- (label "double quoted string")
(char '"')
- (label "indented string")
(label "\"''\"")
(try)
(string "''")
- (parserPlus)
- (label "set")
parserPlus
- (label "recursive set")
(try)
(try)
(string "rec")
+ return
(char '{')
- (parserPlus)
- (label "identifier")
(try)
(label "identifier")
(parserPlus)
- (label "letter")
(satisfy)
- (char '_')
- (parserZero)
+ return
parserPlus
- (try)
(string "?")
+ return
parserPlus
- (parserPlus)
- (try)
(string "++")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "*")
- (parserPlus)
- (try)
(string "/")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "+")
- (parserPlus)
- (try)
(string "-")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "//")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "<")
- (parserPlus)
- (try)
(string ">")
- (parserPlus)
- (try)
(string "<=")
- (parserPlus)
- (try)
(string ">=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "==")
- (parserPlus)
- (try)
(string "!=")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "&&")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "||")
- (parserZero)
+ return
parserPlus
- (parserPlus)
- (try)
(string "->")
- (parserZero)
+ return
char ')'
parserPlus
+ skipMany1
+ label ""
parserPlus
+ parserPlus
+ skipMany1
+ satisfy => '\n'
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
+ satisfy => ' '
- (satisfy)
- (label "")
(parserPlus)
- (parserPlus)
- (skipMany1)
- (satisfy)
- (try)
(string "#")
- (try)
(string "/*")
parserPlus
- (label ".")
(try)
(char '.')
+ return
parserPlus
+ parserPlus
- (label "integer")
(label "digit")
(satisfy)
+ parserPlus
- (label "bool")
(try)
(parserPlus)
- (string "true")
- (string "false")
+ parserPlus
- (label "null")
(try)
(string "null")
+ parserPlus
- (label "parens")
(char '(')
+ parserPlus
+ label "list"
char '['
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment