{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "agda",
"word": "id",
"rules": {
"source_file": {
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_declaration"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
"_FORALL": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "forall"
},
{
"type": "STRING",
"value": "∀"
}
]
},
"_ARROW": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "->"
},
{
"type": "STRING",
"value": "→"
}
]
},
"_LAMBDA": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "STRING",
"value": "λ"
}
]
},
"_ELLIPSIS": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "..."
},
{
"type": "STRING",
"value": "…"
}
]
},
"_declaration_block": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_declaration"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"_declaration": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "fields"
},
{
"type": "SYMBOL",
"name": "function"
},
{
"type": "SYMBOL",
"name": "data"
},
{
"type": "SYMBOL",
"name": "data_signature"
},
{
"type": "SYMBOL",
"name": "record"
},
{
"type": "SYMBOL",
"name": "record_signature"
},
{
"type": "SYMBOL",
"name": "infix"
},
{
"type": "SYMBOL",
"name": "generalize"
},
{
"type": "SYMBOL",
"name": "mutual"
},
{
"type": "SYMBOL",
"name": "abstract"
},
{
"type": "SYMBOL",
"name": "private"
},
{
"type": "SYMBOL",
"name": "instance"
},
{
"type": "SYMBOL",
"name": "macro"
},
{
"type": "SYMBOL",
"name": "postulate"
},
{
"type": "SYMBOL",
"name": "primitive"
},
{
"type": "SYMBOL",
"name": "open"
},
{
"type": "SYMBOL",
"name": "import"
},
{
"type": "SYMBOL",
"name": "module_macro"
},
{
"type": "SYMBOL",
"name": "module"
},
{
"type": "SYMBOL",
"name": "pragma"
},
{
"type": "SYMBOL",
"name": "syntax"
},
{
"type": "SYMBOL",
"name": "pattern"
},
{
"type": "SYMBOL",
"name": "unquote_decl"
}
]
},
"fields": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "field"
},
{
"type": "SYMBOL",
"name": "_signature_block"
}
]
},
"_signature_block": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "signature"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"signature": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "overlap"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_modal_arg_ids"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "instance"
},
{
"type": "SYMBOL",
"name": "_signature_block"
}
]
}
]
},
"_modal_arg_ids": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
},
{
"type": "SYMBOL",
"name": "_arg_ids"
}
]
},
"function": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "lhs_decl"
},
"named": true,
"value": "lhs"
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "rhs_decl"
},
{
"type": "BLANK"
}
]
},
"named": true,
"value": "rhs"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "where"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "lhs_defn"
},
"named": true,
"value": "lhs"
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "rhs_defn"
},
{
"type": "BLANK"
}
]
},
"named": true,
"value": "rhs"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "where"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"lhs_decl": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_with_exprs"
},
"named": true,
"value": "function_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "rewrite_equations"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "with_expressions"
},
{
"type": "BLANK"
}
]
}
]
},
"lhs_defn": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_with_exprs"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "rewrite_equations"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "with_expressions"
},
{
"type": "BLANK"
}
]
}
]
}
},
"rhs_decl": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
"rhs_defn": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
"with_expressions": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "with"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
"rewrite_equations": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "rewrite"
},
{
"type": "SYMBOL",
"name": "_with_exprs"
}
]
},
"where": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "module"
},
{
"type": "SYMBOL",
"name": "bid"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "where"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declaration_block"
},
{
"type": "BLANK"
}
]
}
]
},
"data_name": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "id"
},
"named": false,
"value": "data_name"
},
"data": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "data"
},
{
"type": "STRING",
"value": "codata"
}
]
},
{
"type": "SYMBOL",
"name": "data_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_typed_untyped_bindings"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "where"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declaration_block"
},
{
"type": "BLANK"
}
]
}
]
},
"data_signature": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "data"
},
{
"type": "SYMBOL",
"name": "data_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_typed_untyped_bindings"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
"record": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "record"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_atom_no_curly"
},
"named": true,
"value": "record_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_typed_untyped_bindings"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "record_declarations_block"
}
]
},
"record_declarations_block": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "where"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_record_directive"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_declaration"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
}
]
},
"_record_directive": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "record_constructor"
},
{
"type": "SYMBOL",
"name": "record_constructor_instance"
},
{
"type": "SYMBOL",
"name": "record_induction"
},
{
"type": "SYMBOL",
"name": "record_eta"
}
]
},
"record_constructor": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "constructor"
},
{
"type": "SYMBOL",
"name": "id"
}
]
},
"record_constructor_instance": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "instance"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "record_constructor"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
}
]
},
"record_induction": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "inductive"
},
{
"type": "STRING",
"value": "coinductive"
}
]
},
"record_eta": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "eta-equality"
},
{
"type": "STRING",
"value": "no-eta-equality"
}
]
},
"record_signature": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "record"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_atom_no_curly"
},
"named": true,
"value": "record_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_typed_untyped_bindings"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
"infix": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "infix"
},
{
"type": "STRING",
"value": "infixl"
},
{
"type": "STRING",
"value": "infixr"
}
]
},
{
"type": "SYMBOL",
"name": "integer"
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "bid"
}
}
]
},
"generalize": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "variable"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_signature_block"
},
{
"type": "BLANK"
}
]
}
]
},
"mutual": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "mutual"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declaration_block"
},
{
"type": "BLANK"
}
]
}
]
},
"abstract": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "abstract"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declaration_block"
},
{
"type": "BLANK"
}
]
}
]
},
"private": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "private"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declaration_block"
},
{
"type": "BLANK"
}
]
}
]
},
"instance": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "instance"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declaration_block"
},
{
"type": "BLANK"
}
]
}
]
},
"macro": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "macro"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declaration_block"
},
{
"type": "BLANK"
}
]
}
]
},
"postulate": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "postulate"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declaration_block"
},
{
"type": "BLANK"
}
]
}
]
},
"primitive": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "primitive"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_signature_block"
},
{
"type": "BLANK"
}
]
}
]
},
"_type_signature_block": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "type_signature"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
"type_signature": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_field_names"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
"open": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "open"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "import"
},
{
"type": "SYMBOL",
"name": "module_name"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_atoms"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_import_directives"
},
{
"type": "BLANK"
}
]
}
]
},
"import": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "import"
},
{
"type": "SYMBOL",
"name": "module_name"
}
]
},
"module_name": {
"type": "SYMBOL",
"name": "_qid"
},
"_import_directives": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "import_directive"
}
},
"import_directive": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "public"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "using"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_comma_import_names"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "hiding"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_comma_import_names"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "renaming"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "renaming"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "renaming"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "using"
},
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "hiding"
},
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "renaming"
},
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"_comma_import_names": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_import_name"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "SYMBOL",
"name": "_import_name"
}
]
}
}
]
},
"renaming": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "module"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "id"
},
{
"type": "STRING",
"value": "to"
},
{
"type": "SYMBOL",
"name": "id"
}
]
},
"_import_name": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "module"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "id"
}
]
},
"module_macro": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "module"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_qid"
},
"named": true,
"value": "module_name"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "open"
},
{
"type": "STRING",
"value": "module"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_qid"
},
"named": true,
"value": "module_name"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_typed_untyped_bindings"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "module_application"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "import_directive"
}
}
]
},
"module_application": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "module_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "PREC",
"value": 1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_ELLIPSIS"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_ELLIPSIS"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_atoms"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"module": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "module"
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_qid"
},
{
"type": "STRING",
"value": "_"
}
]
},
"named": true,
"value": "module_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_typed_untyped_bindings"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "where"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_declaration_block"
},
{
"type": "BLANK"
}
]
}
]
},
"pragma": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{-#"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^#]"
},
{
"type": "PATTERN",
"value": "#[^-]"
},
{
"type": "PATTERN",
"value": "#\\-[^}]"
}
]
}
},
{
"type": "STRING",
"value": "#-}"
}
]
}
},
"catchall_pragma": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{-#"
},
{
"type": "STRING",
"value": "CATCHALL"
},
{
"type": "STRING",
"value": "#-}"
}
]
},
"syntax": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "syntax"
},
{
"type": "SYMBOL",
"name": "id"
},
{
"type": "SYMBOL",
"name": "hole_names"
},
{
"type": "STRING",
"value": "="
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "id"
}
}
]
},
"hole_names": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "hole_name"
}
},
"hole_name": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_simple_top_hole"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_hole"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_hole"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_simple_hole"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "id"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_simple_hole"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "id"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_simple_hole"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "id"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_simple_hole"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
}
]
},
"_simple_top_hole": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "id"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_LAMBDA"
},
{
"type": "SYMBOL",
"name": "bid"
},
{
"type": "SYMBOL",
"name": "_ARROW"
},
{
"type": "SYMBOL",
"name": "id"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
}
]
},
"_simple_hole": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "id"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_LAMBDA"
},
{
"type": "SYMBOL",
"name": "bid"
},
{
"type": "SYMBOL",
"name": "_ARROW"
},
{
"type": "SYMBOL",
"name": "id"
}
]
}
]
},
"pattern": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "pattern"
},
{
"type": "SYMBOL",
"name": "id"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_lambda_bindings"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
"unquote_decl": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "unquoteDecl"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "unquoteDecl"
},
{
"type": "SYMBOL",
"name": "_ids"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "unquoteDef"
},
{
"type": "SYMBOL",
"name": "_ids"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "expr"
}
]
}
]
},
"id": {
"type": "PATTERN",
"value": "([^\\s\\\\.\\\"\\(\\)\\{\\}@\\'\\\\_]|\\\\[^\\sa-zA-Z]|_[^\\s;\\.\\\"\\(\\)\\{\\}@])[^\\s;\\.\\\"\\(\\)\\{\\}@]*"
},
"_qid": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(([^\\s;\\.\\\"\\(\\)\\{\\}@\\'\\\\_]|\\\\[^\\sa-zA-Z]|_[^\\s;\\.\\\"\\(\\)\\{\\}@])[^\\s;\\.\\\"\\(\\)\\{\\}@]*\\.)*([^\\s;\\.\\\"\\(\\)\\{\\}@\\'\\\\_]|\\\\[^\\sa-zA-Z]|_[^\\s;\\.\\\"\\(\\)\\{\\}@])[^\\s;\\.\\\"\\(\\)\\{\\}@]*"
},
"named": true,
"value": "qid"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "id"
},
"named": true,
"value": "qid"
}
]
}
},
"bid": {
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "SYMBOL",
"name": "id"
}
]
},
"named": false,
"value": "bid"
},
"_ids": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "id"
}
},
"_field_name": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "id"
},
"named": true,
"value": "field_name"
},
"_field_names": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_field_name"
}
},
"_maybe_dotted_id": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_field_name"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_field_name"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ".."
},
{
"type": "SYMBOL",
"name": "_field_name"
}
]
}
]
},
"_maybe_dotted_ids": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_maybe_dotted_id"
}
},
"_arg_ids": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_arg_id"
}
},
"_arg_id": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_maybe_dotted_id"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_maybe_dotted_ids"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_maybe_dotted_ids"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_maybe_dotted_ids"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_field_names"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_field_names"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_field_names"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ".."
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_field_names"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ".."
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_field_names"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_field_names"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
}
]
}
]
},
"_binding_ids_and_absurds": {
"type": "PREC",
"value": -1,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_application"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_qid"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_qid"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_qid"
},
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "_"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_qid"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "_"
}
]
}
]
}
},
"attribute": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "_expr_or_attr"
}
]
},
"attributes": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "attribute"
}
},
"expr": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_typed_bindings"
},
{
"type": "SYMBOL",
"name": "_ARROW"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_atoms"
},
{
"type": "SYMBOL",
"name": "_ARROW"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_with_exprs"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "PREC",
"value": -1,
"content": {
"type": "SYMBOL",
"name": "_with_exprs"
}
}
]
},
"stmt": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_typed_bindings"
},
{
"type": "SYMBOL",
"name": "_ARROW"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_atoms"
},
{
"type": "SYMBOL",
"name": "_ARROW"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_with_exprs"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "PREC",
"value": -1,
"content": {
"type": "SYMBOL",
"name": "_with_exprs_stmt"
}
}
]
},
"_with_exprs": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_atoms"
},
{
"type": "STRING",
"value": "|"
}
]
}
},
{
"type": "SYMBOL",
"name": "_application"
}
]
},
"_with_exprs_stmt": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_atoms"
},
{
"type": "STRING",
"value": "|"
}
]
}
},
{
"type": "SYMBOL",
"name": "_application_stmt"
}
]
},
"_expr_or_attr": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "literal"
},
{
"type": "SYMBOL",
"name": "_qid"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
}
]
},
"_application": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_atoms"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_expr2"
}
]
},
"_application_stmt": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_atoms"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_expr2_stmt"
}
]
},
"_expr2_without_let": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "lambda"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "lambda_extended_or_absurd"
},
"named": true,
"value": "lambda"
},
{
"type": "SYMBOL",
"name": "forall"
},
{
"type": "SYMBOL",
"name": "do"
},
{
"type": "PREC",
"value": -1,
"content": {
"type": "SYMBOL",
"name": "atom"
}
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "quoteGoal"
},
{
"type": "SYMBOL",
"name": "id"
},
{
"type": "STRING",
"value": "in"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "tactic"
},
{
"type": "SYMBOL",
"name": "_atoms"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "tactic"
},
{
"type": "SYMBOL",
"name": "_atoms"
},
{
"type": "STRING",
"value": "|"
},
{
"type": "SYMBOL",
"name": "_with_exprs"
}
]
}
]
},
"_expr2": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr2_without_let"
},
{
"type": "SYMBOL",
"name": "let"
}
]
},
"_expr2_stmt": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expr2_without_let"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "let_in_do"
},
"named": true,
"value": "let"
}
]
},
"atom": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_atom_curly"
},
{
"type": "SYMBOL",
"name": "_atom_no_curly"
}
]
},
"_atoms": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "atom"
}
},
"_atom_curly": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "expr"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
"_atom_no_curly": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "STRING",
"value": "Prop"
},
{
"type": "SYMBOL",
"name": "SetN"
},
{
"type": "STRING",
"value": "quote"
},
{
"type": "STRING",
"value": "quoteTerm"
},
{
"type": "STRING",
"value": "quoteContext"
},
{
"type": "STRING",
"value": "unquote"
},
{
"type": "SYMBOL",
"name": "PropN"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "(|"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "|)"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦇"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "⦈"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "STRING",
"value": "⦄"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "id"
},
{
"type": "STRING",
"value": "@"
},
{
"type": "SYMBOL",
"name": "atom"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "atom"
}
]
},
{
"type": "SYMBOL",
"name": "record_assignments"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "field_assignments"
},
"named": true,
"value": "record_assignments"
},
{
"type": "SYMBOL",
"name": "_ELLIPSIS"
},
{
"type": "SYMBOL",
"name": "_expr_or_attr"
}
]
},
"forall": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_FORALL"
},
{
"type": "SYMBOL",
"name": "_typed_untyped_bindings"
},
{
"type": "SYMBOL",
"name": "_ARROW"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
"let": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "let"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_declaration"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_declaration"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_let_body"
}
]
}
},
"let_in_do": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "let"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_declaration"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_declaration"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "_let_body"
}
]
},
{
"type": "SYMBOL",
"name": "_let_body"
}
]
}
]
}
},
"_let_body": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "in"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
"lambda": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_LAMBDA"
},
{
"type": "SYMBOL",
"name": "_lambda_bindings"
},
{
"type": "SYMBOL",
"name": "_ARROW"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
"_lambda_bindings": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_typed_untyped_binding"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_typed_untyped_binding"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
}
]
},
"lambda_extended_or_absurd": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_LAMBDA"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "lambda_clause"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_lambda_clauses"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "where"
},
{
"type": "SYMBOL",
"name": "_lambda_clauses"
}
]
},
{
"type": "SYMBOL",
"name": "_lambda_bindings"
}
]
}
]
},
"_lambda_clauses": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_lambda_clause_maybe_absurd"
},
{
"type": "STRING",
"value": ";"
}
]
}
},
{
"type": "SYMBOL",
"name": "_lambda_clause_maybe_absurd"
}
]
}
},
"_lambda_clause_maybe_absurd": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "lambda_clause_absurd"
},
{
"type": "SYMBOL",
"name": "lambda_clause"
}
]
}
},
"lambda_clause_absurd": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "catchall_pragma"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_application"
}
]
},
"lambda_clause": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "catchall_pragma"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_atoms"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_ARROW"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
"do": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "do"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_do_stmt"
},
{
"type": "SYMBOL",
"name": "_newline"
}
]
}
},
{
"type": "SYMBOL",
"name": "_dedent"
}
]
}
]
},
"_do_stmt": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "stmt"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "do_where"
},
{
"type": "BLANK"
}
]
}
]
},
"do_where": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "where"
},
{
"type": "SYMBOL",
"name": "_lambda_clauses"
}
]
},
"record_assignments": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "record"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_record_assignments"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
}
]
},
"field_assignments": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "record"
},
{
"type": "SYMBOL",
"name": "_atom_no_curly"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_field_assignments"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
}
]
},
"_record_assignments": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_record_assignment"
},
{
"type": "STRING",
"value": ";"
}
]
}
},
{
"type": "SYMBOL",
"name": "_record_assignment"
}
]
},
"_field_assignments": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "field_assignment"
},
{
"type": "STRING",
"value": ";"
}
]
}
},
{
"type": "SYMBOL",
"name": "field_assignment"
}
]
},
"_record_assignment": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "field_assignment"
},
{
"type": "SYMBOL",
"name": "module_assignment"
}
]
},
"field_assignment": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "id"
},
"named": true,
"value": "field_name"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
"module_assignment": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "module_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_atoms"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_import_directives"
},
{
"type": "BLANK"
}
]
}
]
},
"_typed_bindings": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "typed_binding"
}
},
"typed_binding": {
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_application"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_application"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ".."
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_application"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
}
]
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "SYMBOL",
"name": "_application"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "expr"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "open"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "let"
},
{
"type": "SYMBOL",
"name": "_declaration_block"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
}
]
},
"_typed_untyped_bindings": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_typed_untyped_binding"
}
},
"_typed_untyped_binding": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "untyped_binding"
},
{
"type": "SYMBOL",
"name": "typed_binding"
}
]
},
"untyped_binding": {
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "bid"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "bid"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ".."
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "bid"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
}
]
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{{"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
}
]
},
{
"type": "STRING",
"value": "}}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "⦃"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "attributes"
},
{
"type": "SYMBOL",
"name": "_binding_ids_and_absurds"
}
]
},
{
"type": "STRING",
"value": "⦄"
}
]
}
]
}
]
},
"integer": {
"type": "PATTERN",
"value": "\\-?(0x[0-9a-fA-F]+|[0-9]+)"
},
"string": {
"type": "PATTERN",
"value": "\\\".*\\\""
},
"literal": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "\\-?(0x[0-9a-fA-F]+|[0-9]+)"
},
{
"type": "PATTERN",
"value": "\\\".*\\\""
}
]
},
"comment": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PREC",
"value": 100,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "--"
},
{
"type": "PATTERN",
"value": ".*"
}
]
}
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{--}"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{-"
},
{
"type": "PATTERN",
"value": "[^#]"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^-]"
},
{
"type": "PATTERN",
"value": "-[^}]"
}
]
}
},
{
"type": "PATTERN",
"value": "-}"
}
]
}
]
}
},
"SetN": {
"type": "PREC_RIGHT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "Set"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "atom"
},
{
"type": "BLANK"
}
]
}
]
}
},
"PropN": {
"type": "STRING",
"value": "propN"
}
},
"extras": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "SYMBOL",
"name": "pragma"
},
{
"type": "PATTERN",
"value": "\\s|\\\\n"
}
],
"conflicts": [],
"precedences": [],
"externals": [
{
"type": "SYMBOL",
"name": "_newline"
},
{
"type": "SYMBOL",
"name": "_indent"
},
{
"type": "SYMBOL",
"name": "_dedent"
}
],
"inline": [],
"supertypes": []
}