{ "rules": [ { "name": "toplevel", "extend": false, "args": [], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "RunVar": [ "grammar", [ { "RunVar": [ "prule_action", [] ] } ] ] } ] ] } ] }, { "name": "grammar", "extend": false, "args": [ "action" ], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "Action": [ { "NameBind": [ "rs", { "Repeat": { "expr": { "RunVar": [ "prule", [ { "RunVar": [ "action", [] ] } ] ] }, "min": 0, "max": null, "delim": { "Sequence": [] } } } ] }, { "Construct": [ "GrammarFile", [ { "Name": "rs" } ] ] } ] } ] ] } ] }, { "name": "prule", "extend": false, "args": [ "action" ], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "Action": [ { "Sequence": [ { "NameBind": [ "a", { "Repeat": { "expr": { "Literal": "adapt" }, "min": 0, "max": 1, "delim": { "Sequence": [] } } } ] }, { "Literal": "rule" }, { "NameBind": [ "name", { "RunVar": [ "identifier", [] ] } ] }, { "NameBind": [ "params", { "RunVar": [ "prule_params", [] ] } ] }, { "Literal": "{" }, { "NameBind": [ "blocks", { "RunVar": [ "prule_body", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": "}" } ] }, { "Construct": [ "Rule", [ { "Name": "name" }, { "Name": "a" }, { "Name": "params" }, { "Name": "blocks" } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "rule" }, { "NameBind": [ "name", { "RunVar": [ "identifier", [] ] } ] }, { "NameBind": [ "params", { "RunVar": [ "prule_params", [] ] } ] }, { "Literal": "=" }, { "NameBind": [ "expr", { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": ";" } ] }, { "Construct": [ "Rule", [ { "Name": "name" }, { "Construct": [ "Nil", [] ] }, { "Name": "params" }, { "Construct": [ "Cons", [ { "Construct": [ "Block", [ { "InputLiteral": "" }, { "Construct": [ "Nil", [] ] }, { "Construct": [ "Cons", [ { "Construct": [ "AnnotatedExpr", [ { "Construct": [ "Nil", [] ] }, { "Name": "expr" } ] ] }, { "Construct": [ "Nil", [] ] } ] ] } ] ] }, { "Construct": [ "Nil", [] ] } ] ] } ] ] } ] } ] ] } ] }, { "name": "prule_params", "extend": false, "args": [], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "Action": [ { "Sequence": [ { "Literal": "(" }, { "NameBind": [ "params", { "Repeat": { "expr": { "RunVar": [ "identifier", [] ] }, "min": 0, "max": null, "delim": { "Literal": "," } } } ] }, { "Literal": ")" } ] }, { "Name": "params" } ] } ], [ [], { "Action": [ { "Literal": "" }, { "Construct": [ "Nil", [] ] } ] } ] ] } ] }, { "name": "prule_body", "extend": false, "args": [ "action" ], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "Repeat": { "expr": { "RunVar": [ "prule_block", [ { "RunVar": [ "action", [] ] } ] ] }, "min": 1, "max": null, "delim": { "Sequence": [] } } } ], [ [], { "Action": [ { "NameBind": [ "c", { "RunVar": [ "prule_constructors", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Construct": [ "Cons", [ { "Construct": [ "Block", [ { "InputLiteral": "" }, { "Construct": [ "Nil", [] ] }, { "Name": "c" } ] ] }, { "Construct": [ "Nil", [] ] } ] ] } ] } ] ] } ] }, { "name": "prule_block", "extend": false, "args": [ "action" ], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "Action": [ { "Sequence": [ { "NameBind": [ "a", { "Repeat": { "expr": { "Literal": "adapt" }, "min": 0, "max": 1, "delim": { "Sequence": [] } } } ] }, { "Literal": "group" }, { "NameBind": [ "n", { "SliceInput": { "Repeat": { "expr": { "RunVar": [ "identifier", [] ] }, "min": 0, "max": 1, "delim": { "Sequence": [] } } } } ] }, { "Literal": "{" }, { "NameBind": [ "c", { "RunVar": [ "prule_constructors", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": "}" } ] }, { "Construct": [ "Block", [ { "Name": "n" }, { "Name": "a" }, { "Name": "c" } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "NameBind": [ "a", { "Repeat": { "expr": { "Literal": "adapt" }, "min": 0, "max": 1, "delim": { "Sequence": [] } } } ] }, { "Literal": "group" }, { "NameBind": [ "n", { "SliceInput": { "Repeat": { "expr": { "RunVar": [ "identifier", [] ] }, "min": 0, "max": 1, "delim": { "Sequence": [] } } } } ] }, { "Literal": ";" } ] }, { "Construct": [ "Block", [ { "Name": "n" }, { "Name": "a" }, { "Construct": [ "Nil", [] ] } ] ] } ] } ] ] } ] }, { "name": "prule_constructors", "extend": false, "args": [ "action" ], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "Repeat": { "expr": { "RunVar": [ "prule_annotated_expr", [ { "RunVar": [ "action", [] ] } ] ] }, "min": 0, "max": null, "delim": { "Sequence": [] } } } ] ] } ] }, { "name": "prule_annotated_expr", "extend": false, "args": [ "action" ], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "Action": [ { "Sequence": [ { "NameBind": [ "ans", { "Repeat": { "expr": { "Action": [ { "NameBind": [ "a", { "RunVar": [ "prule_annotation", [] ] } ] }, { "Name": "a" } ] }, "min": 0, "max": null, "delim": { "Sequence": [] } } } ] }, { "NameBind": [ "e", { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": ";" } ] }, { "Construct": [ "AnnotatedExpr", [ { "Name": "ans" }, { "Name": "e" } ] ] } ] } ] ] } ] }, { "name": "prule_annotation", "extend": false, "args": [], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "Action": [ { "Sequence": [ { "Literal": "#" }, { "Literal": "[" }, { "Literal": "error" }, { "Literal": "(" }, { "NameBind": [ "err", { "RunVar": [ "pstring", [] ] } ] }, { "Literal": ")" }, { "Literal": "]" } ] }, { "Construct": [ "Error", [ { "Name": "err" } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "#" }, { "Literal": "[" }, { "Literal": "disable_layout" }, { "Literal": "]" } ] }, { "Construct": [ "DisableLayout", [] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "#" }, { "Literal": "[" }, { "Literal": "enable_layout" }, { "Literal": "]" } ] }, { "Construct": [ "EnableLayout", [] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "#" }, { "Literal": "[" }, { "Literal": "disable_recovery" }, { "Literal": "]" } ] }, { "Construct": [ "DisableRecovery", [] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "#" }, { "Literal": "[" }, { "Literal": "enable_recovery" }, { "Literal": "]" } ] }, { "Construct": [ "EnableRecovery", [] ] } ] } ] ] } ] }, { "name": "prule_expr", "extend": false, "args": [ "action" ], "blocks": [ { "name": "action", "extend": false, "constructors": [ [ [], { "Action": [ { "Sequence": [ { "NameBind": [ "a", { "RunVar": [ "action", [] ] } ] }, { "Literal": "<-" }, { "NameBind": [ "r", "This" ] } ] }, { "Construct": [ "Action", [ { "Name": "r" }, { "Name": "a" } ] ] } ] } ] ] }, { "name": "choice", "extend": false, "constructors": [ [ [], { "Action": [ { "NameBind": [ "es", { "Repeat": { "expr": "Next", "min": 2, "max": null, "delim": { "Literal": "/" } } } ] }, { "Construct": [ "Choice", [ { "Name": "es" } ] ] } ] } ] ] }, { "name": "sequence", "extend": false, "constructors": [ [ [], { "Action": [ { "NameBind": [ "es", { "Repeat": { "expr": "Next", "min": 2, "max": null, "delim": { "RunVar": [ "layout", [] ] } } } ] }, { "Construct": [ "Sequence", [ { "Name": "es" } ] ] } ] } ] ] }, { "name": "bind", "extend": false, "constructors": [ [ [], { "Action": [ { "Sequence": [ { "NameBind": [ "n", { "RunVar": [ "identifier", [] ] } ] }, { "Literal": ":" }, { "NameBind": [ "e", "Next" ] } ] }, { "Construct": [ "NameBind", [ { "Name": "n" }, { "Name": "e" } ] ] } ] } ] ] }, { "name": "repeat", "extend": false, "constructors": [ [ [], { "Action": [ { "Sequence": [ { "NameBind": [ "r", "This" ] }, { "Literal": "*" } ] }, { "Construct": [ "Repeat", [ { "Name": "r" }, { "InputLiteral": "0" }, { "Construct": [ "None", [] ] }, { "Construct": [ "Sequence", [ { "Construct": [ "Nil", [] ] } ] ] } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "NameBind": [ "r", "This" ] }, { "Literal": "+" } ] }, { "Construct": [ "Repeat", [ { "Name": "r" }, { "InputLiteral": "1" }, { "Construct": [ "None", [] ] }, { "Construct": [ "Sequence", [ { "Construct": [ "Nil", [] ] } ] ] } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "NameBind": [ "r", "This" ] }, { "Literal": "?" } ] }, { "Construct": [ "Repeat", [ { "Name": "r" }, { "InputLiteral": "0" }, { "Construct": [ "Some", [ { "InputLiteral": "1" } ] ] }, { "Construct": [ "Sequence", [ { "Construct": [ "Nil", [] ] } ] ] } ] ] } ] } ] ] }, { "name": "base", "extend": false, "constructors": [ [ [], { "Action": [ { "NameBind": [ "s", { "RunVar": [ "pstring", [] ] } ] }, { "Construct": [ "Literal", [ { "Name": "s" } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "[" }, { "NameBind": [ "c", { "RunVar": [ "charclass", [] ] } ] }, { "Literal": "]" } ] }, { "Construct": [ "CharClass", [ { "Name": "c" } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "#str" }, { "Literal": "(" }, { "NameBind": [ "r", { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": ")" } ] }, { "Construct": [ "SliceInput", [ { "Name": "r" } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "#pos" }, { "Literal": "(" }, { "NameBind": [ "r", { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": ")" } ] }, { "Construct": [ "PosLookahead", [ { "Name": "r" } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "#neg" }, { "Literal": "(" }, { "NameBind": [ "r", { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": ")" } ] }, { "Construct": [ "NegLookahead", [ { "Name": "r" } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "<" }, { "NameBind": [ "r", { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": ">" } ] }, { "Name": "r" } ] } ], [ [], { "Action": [ { "Literal": "#this" }, { "Construct": [ "This", [] ] } ] } ], [ [], { "Action": [ { "Literal": "#next" }, { "Construct": [ "Next", [] ] } ] } ], [ [], { "Action": [ { "Literal": "#guid" }, { "Construct": [ "Guid", [] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "#adapt" }, { "Literal": "(" }, { "NameBind": [ "a", { "RunVar": [ "identifier", [] ] } ] }, { "Literal": "," }, { "NameBind": [ "n", { "RunVar": [ "identifier", [] ] } ] }, { "Literal": ")" } ] }, { "Construct": [ "AtAdapt", [ { "Name": "a" }, { "Name": "n" } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "NameBind": [ "n", { "RunVar": [ "identifier", [] ] } ] }, { "NegLookahead": { "RunVar": [ "layout", [] ] } }, { "Literal": "(" }, { "NameBind": [ "as", { "Repeat": { "expr": { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] }, "min": 0, "max": null, "delim": { "Literal": "," } } } ] }, { "Literal": ")" } ] }, { "Construct": [ "RunVar", [ { "Name": "n" }, { "Name": "as" } ] ] } ] } ], [ [], { "Action": [ { "NameBind": [ "n", { "RunVar": [ "identifier", [] ] } ] }, { "Construct": [ "RunVar", [ { "Name": "n" }, { "Construct": [ "Nil", [] ] } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "#repeat" }, { "Literal": "(" }, { "NameBind": [ "e", { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": "," }, { "NameBind": [ "d", { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": "," }, { "Literal": "*" }, { "Literal": ")" } ] }, { "Construct": [ "Repeat", [ { "Name": "e" }, { "InputLiteral": "0" }, { "Construct": [ "None", [] ] }, { "Name": "d" } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "#repeat" }, { "Literal": "(" }, { "NameBind": [ "e", { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": "," }, { "NameBind": [ "d", { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": "," }, { "Literal": "+" }, { "Literal": ")" } ] }, { "Construct": [ "Repeat", [ { "Name": "e" }, { "InputLiteral": "1" }, { "Construct": [ "None", [] ] }, { "Name": "d" } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "#repeat" }, { "Literal": "(" }, { "NameBind": [ "e", { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": "," }, { "NameBind": [ "d", { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": "," }, { "NameBind": [ "min", { "RunVar": [ "integer", [] ] } ] }, { "Literal": "," }, { "Literal": "inf" }, { "Literal": ")" } ] }, { "Construct": [ "Repeat", [ { "Name": "e" }, { "Name": "min" }, { "Construct": [ "None", [] ] }, { "Name": "d" } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "#repeat" }, { "Literal": "(" }, { "NameBind": [ "e", { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": "," }, { "NameBind": [ "d", { "RunVar": [ "prule_expr", [ { "RunVar": [ "action", [] ] } ] ] } ] }, { "Literal": "," }, { "NameBind": [ "min", { "RunVar": [ "integer", [] ] } ] }, { "Literal": "," }, { "NameBind": [ "max", { "RunVar": [ "integer", [] ] } ] }, { "Literal": ")" } ] }, { "Construct": [ "Repeat", [ { "Name": "e" }, { "Name": "min" }, { "Construct": [ "Some", [ { "Name": "max" } ] ] }, { "Name": "d" } ] ] } ] } ] ] } ] }, { "name": "charclass", "extend": false, "args": [], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "Action": [ { "Sequence": [ { "NameBind": [ "negate", { "Repeat": { "expr": { "Literal": "^" }, "min": 0, "max": 1, "delim": { "Sequence": [] } } } ] }, { "NameBind": [ "ps", { "Repeat": { "expr": { "RunVar": [ "charclass_part", [] ] }, "min": 0, "max": null, "delim": { "Literal": "|" } } } ] } ] }, { "Construct": [ "CharClass", [ { "Name": "negate" }, { "Name": "ps" } ] ] } ] } ] ] } ] }, { "name": "charclass_part", "extend": false, "args": [], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "Action": [ { "Sequence": [ { "Literal": "\\'" }, { "NameBind": [ "c1", { "RunVar": [ "charclass_char", [] ] } ] }, { "Literal": "\\'" }, { "Literal": "-" }, { "Literal": "\\'" }, { "NameBind": [ "c2", { "RunVar": [ "charclass_char", [] ] } ] }, { "Literal": "\\'" } ] }, { "Construct": [ "Range", [ { "Name": "c1" }, { "Name": "c2" } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "\\'" }, { "NameBind": [ "c", { "RunVar": [ "charclass_char", [] ] } ] }, { "Literal": "\\'" } ] }, { "Construct": [ "Range", [ { "Name": "c" }, { "Name": "c" } ] ] } ] } ] ] } ] }, { "name": "charclass_char", "extend": false, "args": [], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "CharClass": { "neg": true, "ranges": [ [ "'", "'" ], [ "\\", "\\" ], [ "\n", "\n" ] ] } } ], [ [], { "RunVar": [ "char_escapes", [] ] } ] ] } ] }, { "name": "pstring", "extend": false, "args": [], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [ { "Error": "String" }, "DisableLayout", "DisableRecovery" ], { "Action": [ { "Sequence": [ { "Literal": "\\\"" }, { "NameBind": [ "s", { "SliceInput": { "Repeat": { "expr": { "RunVar": [ "str_char", [] ] }, "min": 0, "max": null, "delim": { "Sequence": [] } } } } ] }, { "Literal": "\\\"" } ] }, { "Name": "s" } ] } ] ] } ] }, { "name": "str_char", "extend": false, "args": [], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "CharClass": { "neg": true, "ranges": [ [ "\"", "\"" ], [ "\\", "\\" ], [ "\n", "\n" ] ] } } ], [ [], { "RunVar": [ "char_escapes", [] ] } ] ] } ] }, { "name": "char_escapes", "extend": false, "args": [], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "Action": [ { "Literal": "\\\\n" }, { "InputLiteral": "\\n" } ] } ], [ [], { "Action": [ { "Literal": "\\\\r" }, { "InputLiteral": "\\r" } ] } ], [ [], { "Action": [ { "Literal": "\\\\\\\\" }, { "InputLiteral": "\\\\" } ] } ], [ [], { "Action": [ { "Literal": "\\\\\\\"" }, { "InputLiteral": "\\\"" } ] } ], [ [], { "Action": [ { "Literal": "\\\\\\'" }, { "InputLiteral": "\\'" } ] } ] ] } ] }, { "name": "layout", "extend": false, "args": [], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "CharClass": { "neg": false, "ranges": [ [ " ", " " ], [ "\r", "\r" ], [ "\n", "\n" ] ] } } ], [ [], { "Sequence": [ { "Literal": "//" }, { "Repeat": { "expr": { "CharClass": { "neg": true, "ranges": [ [ "\n", "\n" ] ] } }, "min": 0, "max": null, "delim": { "Sequence": [] } } }, { "Literal": "\\n" } ] } ] ] } ] }, { "name": "integer", "extend": false, "args": [], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [ { "Error": "Integer" }, "DisableLayout", "DisableRecovery" ], { "SliceInput": { "Repeat": { "expr": { "CharClass": { "neg": false, "ranges": [ [ "0", "9" ] ] } }, "min": 1, "max": null, "delim": { "Sequence": [] } } } } ] ] } ] }, { "name": "identifier", "extend": false, "args": [], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [ { "Error": "Identifier" }, "DisableLayout", "DisableRecovery" ], { "Action": [ { "Sequence": [ { "NegLookahead": { "Sequence": [ { "RunVar": [ "reserved", [] ] }, { "NegLookahead": { "CharClass": { "neg": false, "ranges": [ [ "a", "z" ], [ "A", "Z" ], [ "0", "9" ], [ "_", "_" ] ] } } } ] } }, { "NameBind": [ "n", { "SliceInput": { "Sequence": [ { "CharClass": { "neg": false, "ranges": [ [ "a", "z" ], [ "A", "Z" ], [ "_", "_" ] ] } }, { "Repeat": { "expr": { "CharClass": { "neg": false, "ranges": [ [ "a", "z" ], [ "A", "Z" ], [ "0", "9" ], [ "_", "_" ] ] } }, "min": 0, "max": null, "delim": { "Sequence": [] } } } ] } } ] } ] }, { "Name": "n" } ] } ] ] } ] }, { "name": "reserved", "extend": false, "args": [], "blocks": [ { "name": "", "extend": false, "constructors": [ [ [], { "Literal": "end" } ], [ [], { "Literal": "str" } ], [ [], { "Literal": "rule" } ], [ [], { "Literal": "ast" } ], [ [], { "Literal": "neg" } ], [ [], { "Literal": "pos" } ], [ [], { "Literal": "group" } ], [ [], { "Literal": "adapt" } ] ] } ] }, { "name": "prule_action", "extend": false, "args": [], "blocks": [ { "name": "cons", "extend": false, "constructors": [ [ [], { "Action": [ { "Sequence": [ { "NameBind": [ "h", "Next" ] }, { "Literal": "::" }, { "NameBind": [ "t", "This" ] } ] }, { "Construct": [ "Construct", [ { "InputLiteral": "Cons" }, { "Construct": [ "Cons", [ { "Name": "h" }, { "Construct": [ "Cons", [ { "Name": "t" }, { "Construct": [ "Nil", [] ] } ] ] } ] ] } ] ] } ] } ] ] }, { "name": "base", "extend": false, "constructors": [ [ [], { "Action": [ { "Literal": "[]" }, { "Construct": [ "Construct", [ { "InputLiteral": "Nil" }, { "Construct": [ "Nil", [] ] } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "NameBind": [ "n", { "RunVar": [ "identifier", [] ] } ] }, { "Literal": "(" }, { "NameBind": [ "as", { "Repeat": { "expr": { "RunVar": [ "prule_action", [] ] }, "min": 0, "max": null, "delim": { "Literal": "," } } } ] }, { "Literal": ")" } ] }, { "Construct": [ "Construct", [ { "Name": "n" }, { "Name": "as" } ] ] } ] } ], [ [], { "Action": [ { "NameBind": [ "s", { "RunVar": [ "pstring", [] ] } ] }, { "Construct": [ "InputLiteral", [ { "Name": "s" } ] ] } ] } ], [ [], { "Action": [ { "NameBind": [ "n", { "RunVar": [ "identifier", [] ] } ] }, { "Construct": [ "Name", [ { "Name": "n" } ] ] } ] } ], [ [], { "Action": [ { "Sequence": [ { "Literal": "(" }, { "NameBind": [ "a", { "RunVar": [ "prule_action", [] ] } ] }, { "Literal": ")" } ] }, { "Name": "a" } ] } ] ] } ] } ] }