Created
December 21, 2016 08:29
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(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