[
  {
    "type": "access_call",
    "named": true,
    "fields": {
      "key": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_call",
            "named": true
          },
          {
            "type": "alias",
            "named": true
          },
          {
            "type": "anonymous_function",
            "named": true
          },
          {
            "type": "atom",
            "named": true
          },
          {
            "type": "binary_operator",
            "named": true
          },
          {
            "type": "bitstring",
            "named": true
          },
          {
            "type": "block",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "call",
            "named": true
          },
          {
            "type": "char",
            "named": true
          },
          {
            "type": "charlist",
            "named": true
          },
          {
            "type": "dot",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "integer",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "map",
            "named": true
          },
          {
            "type": "nil",
            "named": true
          },
          {
            "type": "operator_identifier",
            "named": true
          },
          {
            "type": "quoted_atom",
            "named": true
          },
          {
            "type": "sigil",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "unary_operator",
            "named": true
          }
        ]
      },
      "target": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_call",
            "named": true
          },
          {
            "type": "alias",
            "named": true
          },
          {
            "type": "anonymous_function",
            "named": true
          },
          {
            "type": "atom",
            "named": true
          },
          {
            "type": "binary_operator",
            "named": true
          },
          {
            "type": "bitstring",
            "named": true
          },
          {
            "type": "block",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "call",
            "named": true
          },
          {
            "type": "char",
            "named": true
          },
          {
            "type": "charlist",
            "named": true
          },
          {
            "type": "dot",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "integer",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "map",
            "named": true
          },
          {
            "type": "nil",
            "named": true
          },
          {
            "type": "operator_identifier",
            "named": true
          },
          {
            "type": "quoted_atom",
            "named": true
          },
          {
            "type": "sigil",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "unary_operator",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "after_block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "access_call",
          "named": true
        },
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "bitstring",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "char",
          "named": true
        },
        {
          "type": "charlist",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "list",
          "named": true
        },
        {
          "type": "map",
          "named": true
        },
        {
          "type": "nil",
          "named": true
        },
        {
          "type": "operator_identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "sigil",
          "named": true
        },
        {
          "type": "stab_clause",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "tuple",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "anonymous_function",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "stab_clause",
          "named": true
        }
      ]
    }
  },
  {
    "type": "arguments",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "access_call",
          "named": true
        },
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "bitstring",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "char",
          "named": true
        },
        {
          "type": "charlist",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "keywords",
          "named": true
        },
        {
          "type": "list",
          "named": true
        },
        {
          "type": "map",
          "named": true
        },
        {
          "type": "nil",
          "named": true
        },
        {
          "type": "operator_identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "sigil",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "tuple",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "binary_operator",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_call",
            "named": true
          },
          {
            "type": "alias",
            "named": true
          },
          {
            "type": "anonymous_function",
            "named": true
          },
          {
            "type": "arguments",
            "named": true
          },
          {
            "type": "atom",
            "named": true
          },
          {
            "type": "binary_operator",
            "named": true
          },
          {
            "type": "bitstring",
            "named": true
          },
          {
            "type": "block",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "call",
            "named": true
          },
          {
            "type": "char",
            "named": true
          },
          {
            "type": "charlist",
            "named": true
          },
          {
            "type": "dot",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "integer",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "map",
            "named": true
          },
          {
            "type": "nil",
            "named": true
          },
          {
            "type": "operator_identifier",
            "named": true
          },
          {
            "type": "quoted_atom",
            "named": true
          },
          {
            "type": "sigil",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "unary_operator",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "!=",
            "named": false
          },
          {
            "type": "!==",
            "named": false
          },
          {
            "type": "&&",
            "named": false
          },
          {
            "type": "&&&",
            "named": false
          },
          {
            "type": "*",
            "named": false
          },
          {
            "type": "**",
            "named": false
          },
          {
            "type": "+",
            "named": false
          },
          {
            "type": "++",
            "named": false
          },
          {
            "type": "+++",
            "named": false
          },
          {
            "type": "-",
            "named": false
          },
          {
            "type": "--",
            "named": false
          },
          {
            "type": "---",
            "named": false
          },
          {
            "type": "..",
            "named": false
          },
          {
            "type": "/",
            "named": false
          },
          {
            "type": "//",
            "named": false
          },
          {
            "type": "::",
            "named": false
          },
          {
            "type": "<",
            "named": false
          },
          {
            "type": "<-",
            "named": false
          },
          {
            "type": "<<<",
            "named": false
          },
          {
            "type": "<<~",
            "named": false
          },
          {
            "type": "<=",
            "named": false
          },
          {
            "type": "<>",
            "named": false
          },
          {
            "type": "<|>",
            "named": false
          },
          {
            "type": "<~",
            "named": false
          },
          {
            "type": "<~>",
            "named": false
          },
          {
            "type": "=",
            "named": false
          },
          {
            "type": "==",
            "named": false
          },
          {
            "type": "===",
            "named": false
          },
          {
            "type": "=>",
            "named": false
          },
          {
            "type": "=~",
            "named": false
          },
          {
            "type": ">",
            "named": false
          },
          {
            "type": ">=",
            "named": false
          },
          {
            "type": ">>>",
            "named": false
          },
          {
            "type": "\\\\",
            "named": false
          },
          {
            "type": "^^^",
            "named": false
          },
          {
            "type": "and",
            "named": false
          },
          {
            "type": "in",
            "named": false
          },
          {
            "type": "not in",
            "named": false
          },
          {
            "type": "or",
            "named": false
          },
          {
            "type": "when",
            "named": false
          },
          {
            "type": "|",
            "named": false
          },
          {
            "type": "|>",
            "named": false
          },
          {
            "type": "||",
            "named": false
          },
          {
            "type": "|||",
            "named": false
          },
          {
            "type": "~>",
            "named": false
          },
          {
            "type": "~>>",
            "named": false
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_call",
            "named": true
          },
          {
            "type": "alias",
            "named": true
          },
          {
            "type": "anonymous_function",
            "named": true
          },
          {
            "type": "atom",
            "named": true
          },
          {
            "type": "binary_operator",
            "named": true
          },
          {
            "type": "bitstring",
            "named": true
          },
          {
            "type": "block",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "call",
            "named": true
          },
          {
            "type": "char",
            "named": true
          },
          {
            "type": "charlist",
            "named": true
          },
          {
            "type": "dot",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "integer",
            "named": true
          },
          {
            "type": "keywords",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "map",
            "named": true
          },
          {
            "type": "nil",
            "named": true
          },
          {
            "type": "operator_identifier",
            "named": true
          },
          {
            "type": "quoted_atom",
            "named": true
          },
          {
            "type": "sigil",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "unary_operator",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "bitstring",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "access_call",
          "named": true
        },
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "bitstring",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "char",
          "named": true
        },
        {
          "type": "charlist",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "keywords",
          "named": true
        },
        {
          "type": "list",
          "named": true
        },
        {
          "type": "map",
          "named": true
        },
        {
          "type": "nil",
          "named": true
        },
        {
          "type": "operator_identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "sigil",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "tuple",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "access_call",
          "named": true
        },
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "bitstring",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "char",
          "named": true
        },
        {
          "type": "charlist",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "list",
          "named": true
        },
        {
          "type": "map",
          "named": true
        },
        {
          "type": "nil",
          "named": true
        },
        {
          "type": "operator_identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "sigil",
          "named": true
        },
        {
          "type": "stab_clause",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "tuple",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "body",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "access_call",
          "named": true
        },
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "bitstring",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "char",
          "named": true
        },
        {
          "type": "charlist",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "list",
          "named": true
        },
        {
          "type": "map",
          "named": true
        },
        {
          "type": "nil",
          "named": true
        },
        {
          "type": "operator_identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "sigil",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "tuple",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "boolean",
    "named": true,
    "fields": {}
  },
  {
    "type": "call",
    "named": true,
    "fields": {
      "target": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "call",
            "named": true
          },
          {
            "type": "dot",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "arguments",
          "named": true
        },
        {
          "type": "do_block",
          "named": true
        }
      ]
    }
  },
  {
    "type": "catch_block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "access_call",
          "named": true
        },
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "bitstring",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "char",
          "named": true
        },
        {
          "type": "charlist",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "list",
          "named": true
        },
        {
          "type": "map",
          "named": true
        },
        {
          "type": "nil",
          "named": true
        },
        {
          "type": "operator_identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "sigil",
          "named": true
        },
        {
          "type": "stab_clause",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "tuple",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "charlist",
    "named": true,
    "fields": {
      "quoted_end": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "'",
            "named": false
          },
          {
            "type": "'''",
            "named": false
          }
        ]
      },
      "quoted_start": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "'",
            "named": false
          },
          {
            "type": "'''",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "interpolation",
          "named": true
        },
        {
          "type": "quoted_content",
          "named": true
        }
      ]
    }
  },
  {
    "type": "do_block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "access_call",
          "named": true
        },
        {
          "type": "after_block",
          "named": true
        },
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "bitstring",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "catch_block",
          "named": true
        },
        {
          "type": "char",
          "named": true
        },
        {
          "type": "charlist",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "else_block",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "list",
          "named": true
        },
        {
          "type": "map",
          "named": true
        },
        {
          "type": "nil",
          "named": true
        },
        {
          "type": "operator_identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "rescue_block",
          "named": true
        },
        {
          "type": "sigil",
          "named": true
        },
        {
          "type": "stab_clause",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "tuple",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "dot",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_call",
            "named": true
          },
          {
            "type": "alias",
            "named": true
          },
          {
            "type": "anonymous_function",
            "named": true
          },
          {
            "type": "atom",
            "named": true
          },
          {
            "type": "binary_operator",
            "named": true
          },
          {
            "type": "bitstring",
            "named": true
          },
          {
            "type": "block",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "call",
            "named": true
          },
          {
            "type": "char",
            "named": true
          },
          {
            "type": "charlist",
            "named": true
          },
          {
            "type": "dot",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "integer",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "map",
            "named": true
          },
          {
            "type": "nil",
            "named": true
          },
          {
            "type": "operator_identifier",
            "named": true
          },
          {
            "type": "quoted_atom",
            "named": true
          },
          {
            "type": "sigil",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "unary_operator",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": ".",
            "named": false
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "alias",
            "named": true
          },
          {
            "type": "charlist",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "operator_identifier",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "else_block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "access_call",
          "named": true
        },
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "bitstring",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "char",
          "named": true
        },
        {
          "type": "charlist",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "list",
          "named": true
        },
        {
          "type": "map",
          "named": true
        },
        {
          "type": "nil",
          "named": true
        },
        {
          "type": "operator_identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "sigil",
          "named": true
        },
        {
          "type": "stab_clause",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "tuple",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "identifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "interpolation",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "access_call",
          "named": true
        },
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "bitstring",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "char",
          "named": true
        },
        {
          "type": "charlist",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "list",
          "named": true
        },
        {
          "type": "map",
          "named": true
        },
        {
          "type": "nil",
          "named": true
        },
        {
          "type": "operator_identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "sigil",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "tuple",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "keywords",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "pair",
          "named": true
        }
      ]
    }
  },
  {
    "type": "list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "access_call",
          "named": true
        },
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "bitstring",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "char",
          "named": true
        },
        {
          "type": "charlist",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "keywords",
          "named": true
        },
        {
          "type": "list",
          "named": true
        },
        {
          "type": "map",
          "named": true
        },
        {
          "type": "nil",
          "named": true
        },
        {
          "type": "operator_identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "sigil",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "tuple",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "map",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "map_content",
          "named": true
        },
        {
          "type": "struct",
          "named": true
        }
      ]
    }
  },
  {
    "type": "map_content",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "access_call",
          "named": true
        },
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "bitstring",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "char",
          "named": true
        },
        {
          "type": "charlist",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "keywords",
          "named": true
        },
        {
          "type": "list",
          "named": true
        },
        {
          "type": "map",
          "named": true
        },
        {
          "type": "nil",
          "named": true
        },
        {
          "type": "operator_identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "sigil",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "tuple",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "nil",
    "named": true,
    "fields": {}
  },
  {
    "type": "operator_identifier",
    "named": true,
    "fields": {}
  },
  {
    "type": "pair",
    "named": true,
    "fields": {
      "key": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "keyword",
            "named": true
          },
          {
            "type": "quoted_keyword",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "access_call",
            "named": true
          },
          {
            "type": "alias",
            "named": true
          },
          {
            "type": "anonymous_function",
            "named": true
          },
          {
            "type": "atom",
            "named": true
          },
          {
            "type": "binary_operator",
            "named": true
          },
          {
            "type": "bitstring",
            "named": true
          },
          {
            "type": "block",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "call",
            "named": true
          },
          {
            "type": "char",
            "named": true
          },
          {
            "type": "charlist",
            "named": true
          },
          {
            "type": "dot",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "integer",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "map",
            "named": true
          },
          {
            "type": "nil",
            "named": true
          },
          {
            "type": "operator_identifier",
            "named": true
          },
          {
            "type": "quoted_atom",
            "named": true
          },
          {
            "type": "sigil",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "unary_operator",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "quoted_atom",
    "named": true,
    "fields": {
      "quoted_end": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "\"",
            "named": false
          },
          {
            "type": "'",
            "named": false
          }
        ]
      },
      "quoted_start": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "\"",
            "named": false
          },
          {
            "type": "'",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "interpolation",
          "named": true
        },
        {
          "type": "quoted_content",
          "named": true
        }
      ]
    }
  },
  {
    "type": "quoted_keyword",
    "named": true,
    "fields": {
      "quoted_end": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "\"",
            "named": false
          },
          {
            "type": "'",
            "named": false
          }
        ]
      },
      "quoted_start": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "\"",
            "named": false
          },
          {
            "type": "'",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "interpolation",
          "named": true
        },
        {
          "type": "quoted_content",
          "named": true
        }
      ]
    }
  },
  {
    "type": "rescue_block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "access_call",
          "named": true
        },
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "bitstring",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "char",
          "named": true
        },
        {
          "type": "charlist",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "list",
          "named": true
        },
        {
          "type": "map",
          "named": true
        },
        {
          "type": "nil",
          "named": true
        },
        {
          "type": "operator_identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "sigil",
          "named": true
        },
        {
          "type": "stab_clause",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "tuple",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "sigil",
    "named": true,
    "fields": {
      "quoted_end": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "\"",
            "named": false
          },
          {
            "type": "\"\"\"",
            "named": false
          },
          {
            "type": "'",
            "named": false
          },
          {
            "type": "'''",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": "/",
            "named": false
          },
          {
            "type": ">",
            "named": false
          },
          {
            "type": "]",
            "named": false
          },
          {
            "type": "|",
            "named": false
          },
          {
            "type": "}",
            "named": false
          }
        ]
      },
      "quoted_start": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "\"",
            "named": false
          },
          {
            "type": "\"\"\"",
            "named": false
          },
          {
            "type": "'",
            "named": false
          },
          {
            "type": "'''",
            "named": false
          },
          {
            "type": "(",
            "named": false
          },
          {
            "type": "/",
            "named": false
          },
          {
            "type": "<",
            "named": false
          },
          {
            "type": "[",
            "named": false
          },
          {
            "type": "{",
            "named": false
          },
          {
            "type": "|",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "interpolation",
          "named": true
        },
        {
          "type": "quoted_content",
          "named": true
        },
        {
          "type": "sigil_modifiers",
          "named": true
        },
        {
          "type": "sigil_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "source",
    "named": true,
    "root": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "access_call",
          "named": true
        },
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "bitstring",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "char",
          "named": true
        },
        {
          "type": "charlist",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "list",
          "named": true
        },
        {
          "type": "map",
          "named": true
        },
        {
          "type": "nil",
          "named": true
        },
        {
          "type": "operator_identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "sigil",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "tuple",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "stab_clause",
    "named": true,
    "fields": {
      "left": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "arguments",
            "named": true
          },
          {
            "type": "binary_operator",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "->",
            "named": false
          }
        ]
      },
      "right": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "body",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "string",
    "named": true,
    "fields": {
      "quoted_end": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "\"",
            "named": false
          },
          {
            "type": "\"\"\"",
            "named": false
          }
        ]
      },
      "quoted_start": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "\"",
            "named": false
          },
          {
            "type": "\"\"\"",
            "named": false
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        },
        {
          "type": "interpolation",
          "named": true
        },
        {
          "type": "quoted_content",
          "named": true
        }
      ]
    }
  },
  {
    "type": "struct",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "tuple",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "access_call",
          "named": true
        },
        {
          "type": "alias",
          "named": true
        },
        {
          "type": "anonymous_function",
          "named": true
        },
        {
          "type": "atom",
          "named": true
        },
        {
          "type": "binary_operator",
          "named": true
        },
        {
          "type": "bitstring",
          "named": true
        },
        {
          "type": "block",
          "named": true
        },
        {
          "type": "boolean",
          "named": true
        },
        {
          "type": "call",
          "named": true
        },
        {
          "type": "char",
          "named": true
        },
        {
          "type": "charlist",
          "named": true
        },
        {
          "type": "dot",
          "named": true
        },
        {
          "type": "float",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "integer",
          "named": true
        },
        {
          "type": "keywords",
          "named": true
        },
        {
          "type": "list",
          "named": true
        },
        {
          "type": "map",
          "named": true
        },
        {
          "type": "nil",
          "named": true
        },
        {
          "type": "operator_identifier",
          "named": true
        },
        {
          "type": "quoted_atom",
          "named": true
        },
        {
          "type": "sigil",
          "named": true
        },
        {
          "type": "string",
          "named": true
        },
        {
          "type": "tuple",
          "named": true
        },
        {
          "type": "unary_operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "unary_operator",
    "named": true,
    "fields": {
      "operand": {
        "multiple": true,
        "required": true,
        "types": [
          {
            "type": "(",
            "named": false
          },
          {
            "type": ")",
            "named": false
          },
          {
            "type": "access_call",
            "named": true
          },
          {
            "type": "alias",
            "named": true
          },
          {
            "type": "anonymous_function",
            "named": true
          },
          {
            "type": "atom",
            "named": true
          },
          {
            "type": "binary_operator",
            "named": true
          },
          {
            "type": "bitstring",
            "named": true
          },
          {
            "type": "block",
            "named": true
          },
          {
            "type": "boolean",
            "named": true
          },
          {
            "type": "call",
            "named": true
          },
          {
            "type": "char",
            "named": true
          },
          {
            "type": "charlist",
            "named": true
          },
          {
            "type": "dot",
            "named": true
          },
          {
            "type": "float",
            "named": true
          },
          {
            "type": "identifier",
            "named": true
          },
          {
            "type": "integer",
            "named": true
          },
          {
            "type": "list",
            "named": true
          },
          {
            "type": "map",
            "named": true
          },
          {
            "type": "nil",
            "named": true
          },
          {
            "type": "operator_identifier",
            "named": true
          },
          {
            "type": "quoted_atom",
            "named": true
          },
          {
            "type": "sigil",
            "named": true
          },
          {
            "type": "string",
            "named": true
          },
          {
            "type": "tuple",
            "named": true
          },
          {
            "type": "unary_operator",
            "named": true
          }
        ]
      },
      "operator": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "!",
            "named": false
          },
          {
            "type": "&",
            "named": false
          },
          {
            "type": "+",
            "named": false
          },
          {
            "type": "-",
            "named": false
          },
          {
            "type": "@",
            "named": false
          },
          {
            "type": "^",
            "named": false
          },
          {
            "type": "not",
            "named": false
          },
          {
            "type": "~~~",
            "named": false
          }
        ]
      }
    }
  },
  {
    "type": "!",
    "named": false
  },
  {
    "type": "!=",
    "named": false
  },
  {
    "type": "!==",
    "named": false
  },
  {
    "type": "\"",
    "named": false
  },
  {
    "type": "\"\"\"",
    "named": false
  },
  {
    "type": "#{",
    "named": false
  },
  {
    "type": "%",
    "named": false
  },
  {
    "type": "&",
    "named": false
  },
  {
    "type": "&&",
    "named": false
  },
  {
    "type": "&&&",
    "named": false
  },
  {
    "type": "'",
    "named": false
  },
  {
    "type": "'''",
    "named": false
  },
  {
    "type": "(",
    "named": false
  },
  {
    "type": ")",
    "named": false
  },
  {
    "type": "*",
    "named": false
  },
  {
    "type": "**",
    "named": false
  },
  {
    "type": "+",
    "named": false
  },
  {
    "type": "++",
    "named": false
  },
  {
    "type": "+++",
    "named": false
  },
  {
    "type": ",",
    "named": false
  },
  {
    "type": "-",
    "named": false
  },
  {
    "type": "--",
    "named": false
  },
  {
    "type": "---",
    "named": false
  },
  {
    "type": "->",
    "named": false
  },
  {
    "type": ".",
    "named": false
  },
  {
    "type": "..",
    "named": false
  },
  {
    "type": "...",
    "named": false
  },
  {
    "type": "/",
    "named": false
  },
  {
    "type": "//",
    "named": false
  },
  {
    "type": ":",
    "named": false
  },
  {
    "type": "::",
    "named": false
  },
  {
    "type": ";",
    "named": false
  },
  {
    "type": "<",
    "named": false
  },
  {
    "type": "<-",
    "named": false
  },
  {
    "type": "<<",
    "named": false
  },
  {
    "type": "<<<",
    "named": false
  },
  {
    "type": "<<~",
    "named": false
  },
  {
    "type": "<=",
    "named": false
  },
  {
    "type": "<>",
    "named": false
  },
  {
    "type": "<|>",
    "named": false
  },
  {
    "type": "<~",
    "named": false
  },
  {
    "type": "<~>",
    "named": false
  },
  {
    "type": "=",
    "named": false
  },
  {
    "type": "==",
    "named": false
  },
  {
    "type": "===",
    "named": false
  },
  {
    "type": "=>",
    "named": false
  },
  {
    "type": "=~",
    "named": false
  },
  {
    "type": ">",
    "named": false
  },
  {
    "type": ">=",
    "named": false
  },
  {
    "type": ">>",
    "named": false
  },
  {
    "type": ">>>",
    "named": false
  },
  {
    "type": "@",
    "named": false
  },
  {
    "type": "[",
    "named": false
  },
  {
    "type": "\\\\",
    "named": false
  },
  {
    "type": "]",
    "named": false
  },
  {
    "type": "^",
    "named": false
  },
  {
    "type": "^^^",
    "named": false
  },
  {
    "type": "after",
    "named": false
  },
  {
    "type": "alias",
    "named": true
  },
  {
    "type": "and",
    "named": false
  },
  {
    "type": "atom",
    "named": true
  },
  {
    "type": "catch",
    "named": false
  },
  {
    "type": "char",
    "named": true
  },
  {
    "type": "comment",
    "named": true
  },
  {
    "type": "do",
    "named": false
  },
  {
    "type": "else",
    "named": false
  },
  {
    "type": "end",
    "named": false
  },
  {
    "type": "escape_sequence",
    "named": true
  },
  {
    "type": "false",
    "named": false
  },
  {
    "type": "float",
    "named": true
  },
  {
    "type": "fn",
    "named": false
  },
  {
    "type": "in",
    "named": false
  },
  {
    "type": "integer",
    "named": true
  },
  {
    "type": "keyword",
    "named": true
  },
  {
    "type": "nil",
    "named": false
  },
  {
    "type": "not",
    "named": false
  },
  {
    "type": "not in",
    "named": false
  },
  {
    "type": "or",
    "named": false
  },
  {
    "type": "quoted_content",
    "named": true
  },
  {
    "type": "rescue",
    "named": false
  },
  {
    "type": "sigil_modifiers",
    "named": true
  },
  {
    "type": "sigil_name",
    "named": true
  },
  {
    "type": "true",
    "named": false
  },
  {
    "type": "when",
    "named": false
  },
  {
    "type": "{",
    "named": false
  },
  {
    "type": "|",
    "named": false
  },
  {
    "type": "|>",
    "named": false
  },
  {
    "type": "||",
    "named": false
  },
  {
    "type": "|||",
    "named": false
  },
  {
    "type": "}",
    "named": false
  },
  {
    "type": "~",
    "named": false
  },
  {
    "type": "~>",
    "named": false
  },
  {
    "type": "~>>",
    "named": false
  },
  {
    "type": "~~~",
    "named": false
  }
]