{
  "name": "xquery",
  "word": "identifier",
  "rules": {
    "module": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "version_declaration"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "main_module"
            },
            {
              "type": "SYMBOL",
              "name": "library_module"
            }
          ]
        }
      ]
    },
    "version_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "xquery"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "encoding"
                },
                {
                  "type": "SYMBOL",
                  "name": "string_literal"
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "version"
                },
                {
                  "type": "SYMBOL",
                  "name": "string_literal"
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": "encoding"
                        },
                        {
                          "type": "SYMBOL",
                          "name": "string_literal"
                        }
                      ]
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "type": "STRING",
          "value": ";"
        }
      ]
    },
    "library_module": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "module_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "prolog"
        }
      ]
    },
    "main_module": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "prolog"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "query_body"
        }
      ]
    },
    "prolog": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_prolog_part_one"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_prolog_part_two"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_prolog_part_one"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "_prolog_part_two"
              }
            ]
          }
        ]
      }
    },
    "module_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "module"
        },
        {
          "type": "SYMBOL",
          "name": "_namespace_define"
        },
        {
          "type": "FIELD",
          "name": "uri",
          "content": {
            "type": "SYMBOL",
            "name": "string_literal"
          }
        },
        {
          "type": "STRING",
          "value": ";"
        }
      ]
    },
    "_namespace_define": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "namespace"
        },
        {
          "type": "SYMBOL",
          "name": "_ncname"
        },
        {
          "type": "STRING",
          "value": "="
        }
      ]
    },
    "_prolog_part_one": {
      "type": "REPEAT1",
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "default_namespace_declaration"
              },
              {
                "type": "SYMBOL",
                "name": "_setter"
              },
              {
                "type": "SYMBOL",
                "name": "namespace_declaration"
              },
              {
                "type": "SYMBOL",
                "name": "module_import"
              },
              {
                "type": "SYMBOL",
                "name": "schema_import"
              }
            ]
          },
          {
            "type": "STRING",
            "value": ";"
          }
        ]
      }
    },
    "_prolog_part_two": {
      "type": "REPEAT1",
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "context_item_declaration"
              },
              {
                "type": "SYMBOL",
                "name": "variable_declaration"
              },
              {
                "type": "SYMBOL",
                "name": "function_declaration"
              },
              {
                "type": "SYMBOL",
                "name": "option_declaration"
              }
            ]
          },
          {
            "type": "STRING",
            "value": ";"
          }
        ]
      }
    },
    "_setter": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "boundary_space_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "default_collation_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "base_uri_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "construction_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "ordering_mode_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "empty_order_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "copy_namespaces_declaration"
        },
        {
          "type": "SYMBOL",
          "name": "decimal_format_declaration"
        }
      ]
    },
    "boundary_space_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "declare"
        },
        {
          "type": "STRING",
          "value": "boundary-space"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "preserve"
            },
            {
              "type": "STRING",
              "value": "strip"
            }
          ]
        }
      ]
    },
    "default_collation_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "declare"
        },
        {
          "type": "STRING",
          "value": "default"
        },
        {
          "type": "STRING",
          "value": "collation"
        },
        {
          "type": "FIELD",
          "name": "uri",
          "content": {
            "type": "SYMBOL",
            "name": "string_literal"
          }
        }
      ]
    },
    "base_uri_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "declare"
        },
        {
          "type": "STRING",
          "value": "base-uri"
        },
        {
          "type": "FIELD",
          "name": "uri",
          "content": {
            "type": "SYMBOL",
            "name": "string_literal"
          }
        }
      ]
    },
    "construction_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "declare"
        },
        {
          "type": "STRING",
          "value": "construction"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "preserve"
            },
            {
              "type": "STRING",
              "value": "strip"
            }
          ]
        }
      ]
    },
    "ordering_mode_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "declare"
        },
        {
          "type": "STRING",
          "value": "ordering"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "ordered"
            },
            {
              "type": "STRING",
              "value": "unordered"
            }
          ]
        }
      ]
    },
    "empty_order_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "declare"
        },
        {
          "type": "STRING",
          "value": "default"
        },
        {
          "type": "STRING",
          "value": "order"
        },
        {
          "type": "STRING",
          "value": "empty"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "greatest"
            },
            {
              "type": "STRING",
              "value": "least"
            }
          ]
        }
      ]
    },
    "copy_namespaces_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "declare"
        },
        {
          "type": "STRING",
          "value": "copy-namespaces"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "preserve"
            },
            {
              "type": "STRING",
              "value": "no-preserve"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ","
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "inherit"
            },
            {
              "type": "STRING",
              "value": "no-inherit"
            }
          ]
        }
      ]
    },
    "decimal_format_declaration": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "declare"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "decimal-format"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_EQName"
                  }
                ]
              },
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "default"
                  },
                  {
                    "type": "STRING",
                    "value": "decimal-format"
                  }
                ]
              }
            ]
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "SYMBOL",
              "name": "df_property_define"
            }
          }
        ]
      }
    },
    "df_property_define": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "decimal-separator"
            },
            {
              "type": "STRING",
              "value": "grouping-separator"
            },
            {
              "type": "STRING",
              "value": "infinity"
            },
            {
              "type": "STRING",
              "value": "minus-sign"
            },
            {
              "type": "STRING",
              "value": "NaN"
            },
            {
              "type": "STRING",
              "value": "percent"
            },
            {
              "type": "STRING",
              "value": "per-mille"
            },
            {
              "type": "STRING",
              "value": "zero-digit"
            },
            {
              "type": "STRING",
              "value": "digit"
            },
            {
              "type": "STRING",
              "value": "pattern-separator"
            },
            {
              "type": "STRING",
              "value": "exponent-separator"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "SYMBOL",
          "name": "string_literal"
        }
      ]
    },
    "schema_import": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "import"
        },
        {
          "type": "STRING",
          "value": "schema"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "schema_prefix"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "FIELD",
          "name": "uri",
          "content": {
            "type": "SYMBOL",
            "name": "string_literal"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "at"
                },
                {
                  "type": "SYMBOL",
                  "name": "string_literal"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "SYMBOL",
                        "name": "string_literal"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "schema_prefix": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_namespace_define"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "default"
            },
            {
              "type": "STRING",
              "value": "element"
            },
            {
              "type": "STRING",
              "value": "namespace"
            }
          ]
        }
      ]
    },
    "module_import": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "import"
        },
        {
          "type": "STRING",
          "value": "module"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_namespace_define"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "FIELD",
          "name": "uri",
          "content": {
            "type": "SYMBOL",
            "name": "string_literal"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "source_at"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "source_at": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "at"
        },
        {
          "type": "SYMBOL",
          "name": "string_literal"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "SYMBOL",
                "name": "string_literal"
              }
            ]
          }
        }
      ]
    },
    "namespace_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "declare"
        },
        {
          "type": "SYMBOL",
          "name": "_namespace_define"
        },
        {
          "type": "FIELD",
          "name": "uri",
          "content": {
            "type": "SYMBOL",
            "name": "string_literal"
          }
        }
      ]
    },
    "default_namespace_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "declare"
        },
        {
          "type": "STRING",
          "value": "default"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "element"
            },
            {
              "type": "STRING",
              "value": "function"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "namespace"
        },
        {
          "type": "FIELD",
          "name": "uri",
          "content": {
            "type": "SYMBOL",
            "name": "string_literal"
          }
        }
      ]
    },
    "context_item_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "declare"
        },
        {
          "type": "STRING",
          "value": "context"
        },
        {
          "type": "STRING",
          "value": "item"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "type_declaration"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": ":="
                },
                {
                  "type": "FIELD",
                  "name": "var_value",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_expr"
                  }
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "external"
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": ":="
                        },
                        {
                          "type": "SYMBOL",
                          "name": "_expr"
                        }
                      ]
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    "variable_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "declare"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "annotation"
          }
        },
        {
          "type": "STRING",
          "value": "variable"
        },
        {
          "type": "SYMBOL",
          "name": "variable"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "type_declaration"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": ":="
                },
                {
                  "type": "FIELD",
                  "name": "value",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_expr_single"
                  }
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "external"
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": ":="
                        },
                        {
                          "type": "SYMBOL",
                          "name": "_expr_single"
                        }
                      ]
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    "function_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "declare"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "annotation"
          }
        },
        {
          "type": "STRING",
          "value": "function"
        },
        {
          "type": "SYMBOL",
          "name": "_EQName"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "param_list"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "FIELD",
              "name": "return_type",
              "content": {
                "type": "SYMBOL",
                "name": "type_declaration"
              }
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "enclosed_expr"
              },
              {
                "type": "STRING",
                "value": "external"
              }
            ]
          }
        }
      ]
    },
    "param_list": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_param"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "SYMBOL",
                "name": "_param"
              }
            ]
          }
        }
      ]
    },
    "_param": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "$"
        },
        {
          "type": "SYMBOL",
          "name": "_EQName"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "FIELD",
              "name": "param_type",
              "content": {
                "type": "SYMBOL",
                "name": "type_declaration"
              }
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "option_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "declare"
        },
        {
          "type": "STRING",
          "value": "option"
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "_EQName"
          }
        },
        {
          "type": "FIELD",
          "name": "value",
          "content": {
            "type": "SYMBOL",
            "name": "string_literal"
          }
        }
      ]
    },
    "query_body": {
      "type": "SYMBOL",
      "name": "_expr"
    },
    "_expr": {
      "type": "PREC",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_expr_single"
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": ","
                },
                {
                  "type": "SYMBOL",
                  "name": "_expr_single"
                }
              ]
            }
          }
        ]
      }
    },
    "_expr_single": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "flwor_expr"
        },
        {
          "type": "SYMBOL",
          "name": "quantified_expr"
        },
        {
          "type": "SYMBOL",
          "name": "switch_expr"
        },
        {
          "type": "SYMBOL",
          "name": "typeswitch_expr"
        },
        {
          "type": "SYMBOL",
          "name": "if_expr"
        },
        {
          "type": "SYMBOL",
          "name": "try_catch_expr"
        },
        {
          "type": "SYMBOL",
          "name": "or_expr"
        },
        {
          "type": "SYMBOL",
          "name": "and_expr"
        },
        {
          "type": "SYMBOL",
          "name": "comparison_expr"
        },
        {
          "type": "SYMBOL",
          "name": "string_concat_expr"
        },
        {
          "type": "SYMBOL",
          "name": "range_expr"
        },
        {
          "type": "SYMBOL",
          "name": "additive_expr"
        },
        {
          "type": "SYMBOL",
          "name": "multiplicative_expr"
        },
        {
          "type": "SYMBOL",
          "name": "union_expr"
        },
        {
          "type": "SYMBOL",
          "name": "intersect_except_expr"
        },
        {
          "type": "SYMBOL",
          "name": "instance_of_expr"
        },
        {
          "type": "SYMBOL",
          "name": "treat_expr"
        },
        {
          "type": "SYMBOL",
          "name": "castable_expr"
        },
        {
          "type": "SYMBOL",
          "name": "cast_expr"
        },
        {
          "type": "SYMBOL",
          "name": "arrow_expr"
        },
        {
          "type": "SYMBOL",
          "name": "unary_expr"
        },
        {
          "type": "SYMBOL",
          "name": "bang_expr"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_postfix_expr"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "absolute_path_expr"
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "absolute_path_expr"
        },
        {
          "type": "SYMBOL",
          "name": "rel_path_expr"
        },
        {
          "type": "SYMBOL",
          "name": "_primary_expr"
        }
      ]
    },
    "flwor_expr": {
      "type": "PREC",
      "value": 2,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_initial_clause"
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "SYMBOL",
              "name": "_intermediate_clause"
            }
          },
          {
            "type": "SYMBOL",
            "name": "return_clause"
          }
        ]
      }
    },
    "_initial_clause": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "for_clause"
        },
        {
          "type": "SYMBOL",
          "name": "let_clause"
        },
        {
          "type": "SYMBOL",
          "name": "_window_clause"
        }
      ]
    },
    "_intermediate_clause": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_initial_clause"
        },
        {
          "type": "SYMBOL",
          "name": "where_clause"
        },
        {
          "type": "SYMBOL",
          "name": "group_by_clause"
        },
        {
          "type": "SYMBOL",
          "name": "order_by_clause"
        },
        {
          "type": "SYMBOL",
          "name": "count_clause"
        }
      ]
    },
    "for_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "for"
        },
        {
          "type": "SYMBOL",
          "name": "for_binding"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "SYMBOL",
                "name": "for_binding"
              }
            ]
          }
        }
      ]
    },
    "for_binding": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "$"
        },
        {
          "type": "SYMBOL",
          "name": "_EQName"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "type_declaration"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "allowing"
                },
                {
                  "type": "STRING",
                  "value": "empty"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_positional_var"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "in"
        },
        {
          "type": "FIELD",
          "name": "binding_sequence",
          "content": {
            "type": "SYMBOL",
            "name": "_expr_single"
          }
        }
      ]
    },
    "let_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "let"
        },
        {
          "type": "SYMBOL",
          "name": "let_binding"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "SYMBOL",
                "name": "let_binding"
              }
            ]
          }
        }
      ]
    },
    "let_binding": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "$"
        },
        {
          "type": "SYMBOL",
          "name": "_EQName"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "type_declaration"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ":="
        },
        {
          "type": "SYMBOL",
          "name": "_expr_single"
        }
      ]
    },
    "_window_clause": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "tumbling_window_clause"
        },
        {
          "type": "SYMBOL",
          "name": "sliding_window_clause"
        }
      ]
    },
    "tumbling_window_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "for"
        },
        {
          "type": "STRING",
          "value": "tumbling"
        },
        {
          "type": "STRING",
          "value": "window"
        },
        {
          "type": "SYMBOL",
          "name": "variable"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "type_declaration"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "in"
        },
        {
          "type": "SYMBOL",
          "name": "_expr_single"
        },
        {
          "type": "SYMBOL",
          "name": "window_start_condition"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "window_end_condition"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "sliding_window_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "for"
        },
        {
          "type": "STRING",
          "value": "sliding"
        },
        {
          "type": "STRING",
          "value": "window"
        },
        {
          "type": "SYMBOL",
          "name": "variable"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "type_declaration"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "in"
        },
        {
          "type": "SYMBOL",
          "name": "_expr_single"
        },
        {
          "type": "SYMBOL",
          "name": "window_start_condition"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "window_end_condition"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "window_start_condition": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "start"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "FIELD",
              "name": "current_item",
              "content": {
                "type": "SYMBOL",
                "name": "variable"
              }
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_positional_var"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "previous"
                },
                {
                  "type": "FIELD",
                  "name": "previous_item",
                  "content": {
                    "type": "SYMBOL",
                    "name": "variable"
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "next"
                },
                {
                  "type": "FIELD",
                  "name": "next_item",
                  "content": {
                    "type": "SYMBOL",
                    "name": "variable"
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "when"
        },
        {
          "type": "SYMBOL",
          "name": "_expr_single"
        }
      ]
    },
    "window_end_condition": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "only"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "end"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "FIELD",
              "name": "current_item",
              "content": {
                "type": "SYMBOL",
                "name": "variable"
              }
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_positional_var"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "previous"
                },
                {
                  "type": "FIELD",
                  "name": "previous_item",
                  "content": {
                    "type": "SYMBOL",
                    "name": "variable"
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "next"
                },
                {
                  "type": "FIELD",
                  "name": "next_item",
                  "content": {
                    "type": "SYMBOL",
                    "name": "variable"
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "when"
        },
        {
          "type": "SYMBOL",
          "name": "_expr_single"
        }
      ]
    },
    "_positional_var": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "at"
        },
        {
          "type": "FIELD",
          "name": "positional_variable",
          "content": {
            "type": "SYMBOL",
            "name": "variable"
          }
        }
      ]
    },
    "current_item": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "$"
        },
        {
          "type": "SYMBOL",
          "name": "_EQName"
        }
      ]
    },
    "previous_item": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": ""
        }
      ]
    },
    "next_item": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": ""
        }
      ]
    },
    "count_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "count"
        },
        {
          "type": "SYMBOL",
          "name": "variable"
        }
      ]
    },
    "where_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "where"
        },
        {
          "type": "SYMBOL",
          "name": "_expr_single"
        }
      ]
    },
    "group_by_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "group"
        },
        {
          "type": "STRING",
          "value": "by"
        },
        {
          "type": "SYMBOL",
          "name": "grouping_spec"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "SYMBOL",
                "name": "grouping_spec"
              }
            ]
          }
        }
      ]
    },
    "grouping_spec": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "grouping_var",
          "content": {
            "type": "SYMBOL",
            "name": "variable"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SYMBOL",
                      "name": "type_declaration"
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                },
                {
                  "type": "STRING",
                  "value": ":="
                },
                {
                  "type": "SYMBOL",
                  "name": "_expr_single"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "collation"
                },
                {
                  "type": "FIELD",
                  "name": "uri",
                  "content": {
                    "type": "SYMBOL",
                    "name": "string_literal"
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "order_by_clause": {
      "type": "PREC_LEFT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "STRING",
                "value": "stable"
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "STRING",
            "value": "order"
          },
          {
            "type": "STRING",
            "value": "by"
          },
          {
            "type": "SYMBOL",
            "name": "_order_spec_list"
          }
        ]
      }
    },
    "_order_spec_list": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_order_spec"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "SYMBOL",
                "name": "_order_spec"
              }
            ]
          }
        }
      ]
    },
    "_order_spec": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "order_expr",
          "content": {
            "type": "SYMBOL",
            "name": "_expr_single"
          }
        },
        {
          "type": "FIELD",
          "name": "order_modifier",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "order_direction"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "order_length"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "order_collation"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              }
            ]
          }
        }
      ]
    },
    "order_direction": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "ascending"
            },
            {
              "type": "STRING",
              "value": "descending"
            }
          ]
        }
      ]
    },
    "order_length": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "empty"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "greatest"
            },
            {
              "type": "STRING",
              "value": "least"
            }
          ]
        }
      ]
    },
    "order_collation": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "collation"
        },
        {
          "type": "FIELD",
          "name": "uri",
          "content": {
            "type": "SYMBOL",
            "name": "string_literal"
          }
        }
      ]
    },
    "return_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "return"
        },
        {
          "type": "SYMBOL",
          "name": "_expr_single"
        }
      ]
    },
    "quantified_expr": {
      "type": "PREC",
      "value": 2,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "STRING",
                "value": "some"
              },
              {
                "type": "STRING",
                "value": "every"
              }
            ]
          },
          {
            "type": "FIELD",
            "name": "quantifier",
            "content": {
              "type": "SYMBOL",
              "name": "variable"
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "type_declaration"
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "STRING",
            "value": "in"
          },
          {
            "type": "FIELD",
            "name": "in_binding",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_expr_single"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "SYMBOL",
                        "name": "variable"
                      },
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "SYMBOL",
                            "name": "type_declaration"
                          },
                          {
                            "type": "BLANK"
                          }
                        ]
                      },
                      {
                        "type": "STRING",
                        "value": "in"
                      },
                      {
                        "type": "SYMBOL",
                        "name": "_expr_single"
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            "type": "STRING",
            "value": "satisfies"
          },
          {
            "type": "FIELD",
            "name": "satisfy_conditional",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          }
        ]
      }
    },
    "switch_expr": {
      "type": "PREC",
      "value": 2,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "switch"
          },
          {
            "type": "FIELD",
            "name": "switch_operand",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "SYMBOL",
                  "name": "_expr"
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            }
          },
          {
            "type": "REPEAT1",
            "content": {
              "type": "SYMBOL",
              "name": "switch_clause"
            }
          },
          {
            "type": "FIELD",
            "name": "switch_default",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "default"
                },
                {
                  "type": "STRING",
                  "value": "return"
                },
                {
                  "type": "FIELD",
                  "name": "default_return",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_expr_single"
                  }
                }
              ]
            }
          }
        ]
      }
    },
    "switch_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "REPEAT1",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "case"
              },
              {
                "type": "FIELD",
                "name": "case_operand",
                "content": {
                  "type": "SYMBOL",
                  "name": "_expr_single"
                }
              }
            ]
          }
        },
        {
          "type": "STRING",
          "value": "return"
        },
        {
          "type": "FIELD",
          "name": "case_return",
          "content": {
            "type": "SYMBOL",
            "name": "_expr_single"
          }
        }
      ]
    },
    "typeswitch_expr": {
      "type": "PREC",
      "value": 2,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "typeswitch"
          },
          {
            "type": "FIELD",
            "name": "operand",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "SYMBOL",
                  "name": "_expr"
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            }
          },
          {
            "type": "REPEAT1",
            "content": {
              "type": "SYMBOL",
              "name": "typeswitch_case_clause"
            }
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "default"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "variable"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "STRING",
                "value": "return"
              },
              {
                "type": "SYMBOL",
                "name": "_expr_single"
              }
            ]
          }
        ]
      }
    },
    "typeswitch_case_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "case"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "variable"
                },
                {
                  "type": "STRING",
                  "value": "as"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "sequence_type"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "|"
              },
              {
                "type": "SYMBOL",
                "name": "sequence_type"
              }
            ]
          }
        },
        {
          "type": "STRING",
          "value": "return"
        },
        {
          "type": "SYMBOL",
          "name": "_expr_single"
        }
      ]
    },
    "if_expr": {
      "type": "PREC",
      "value": 2,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "if"
          },
          {
            "type": "FIELD",
            "name": "if_test",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "SYMBOL",
                  "name": "_expr"
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            }
          },
          {
            "type": "STRING",
            "value": "then"
          },
          {
            "type": "FIELD",
            "name": "if_consequence",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "STRING",
            "value": "else"
          },
          {
            "type": "FIELD",
            "name": "if_alternative",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          }
        ]
      }
    },
    "try_catch_expr": {
      "type": "PREC",
      "value": 2,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "try_clause"
          },
          {
            "type": "SYMBOL",
            "name": "catch_clause"
          }
        ]
      }
    },
    "try_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "try"
        },
        {
          "type": "SYMBOL",
          "name": "enclosed_expr"
        }
      ]
    },
    "catch_clause": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "catch"
        },
        {
          "type": "SYMBOL",
          "name": "catch_error_list"
        },
        {
          "type": "SYMBOL",
          "name": "enclosed_expr"
        }
      ]
    },
    "catch_error_list": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "name_test"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "|"
              },
              {
                "type": "SYMBOL",
                "name": "name_test"
              }
            ]
          }
        }
      ]
    },
    "or_expr": {
      "type": "PREC_LEFT",
      "value": 3,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "lhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "STRING",
            "value": "or"
          },
          {
            "type": "FIELD",
            "name": "rhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          }
        ]
      }
    },
    "and_expr": {
      "type": "PREC_LEFT",
      "value": 4,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "lhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "STRING",
            "value": "and"
          },
          {
            "type": "FIELD",
            "name": "rhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          }
        ]
      }
    },
    "comparison_expr": {
      "type": "PREC_LEFT",
      "value": 5,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "lhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "SYMBOL",
            "name": "_comparison_ops"
          },
          {
            "type": "FIELD",
            "name": "rhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          }
        ]
      }
    },
    "_comparison_ops": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_value_comp"
        },
        {
          "type": "SYMBOL",
          "name": "_general_comp"
        },
        {
          "type": "SYMBOL",
          "name": "_node_comp"
        }
      ]
    },
    "_value_comp": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "eq"
        },
        {
          "type": "STRING",
          "value": "ne"
        },
        {
          "type": "STRING",
          "value": "lt"
        },
        {
          "type": "STRING",
          "value": "le"
        },
        {
          "type": "STRING",
          "value": "gt"
        },
        {
          "type": "STRING",
          "value": "ge"
        }
      ]
    },
    "_general_comp": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "STRING",
          "value": "!="
        },
        {
          "type": "STRING",
          "value": "<"
        },
        {
          "type": "STRING",
          "value": "<="
        },
        {
          "type": "STRING",
          "value": ">"
        },
        {
          "type": "STRING",
          "value": ">="
        }
      ]
    },
    "_node_comp": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "is"
        },
        {
          "type": "STRING",
          "value": "<<"
        },
        {
          "type": "STRING",
          "value": ">>"
        }
      ]
    },
    "string_concat_expr": {
      "type": "PREC_LEFT",
      "value": 6,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "lhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "REPEAT1",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "||"
                },
                {
                  "type": "FIELD",
                  "name": "rhs",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_expr_single"
                  }
                }
              ]
            }
          }
        ]
      }
    },
    "range_expr": {
      "type": "PREC_LEFT",
      "value": 7,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "lhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "STRING",
            "value": "to"
          },
          {
            "type": "FIELD",
            "name": "rhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          }
        ]
      }
    },
    "additive_expr": {
      "type": "PREC_LEFT",
      "value": 8,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "lhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "REPEAT1",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "+"
                    },
                    {
                      "type": "STRING",
                      "value": "-"
                    }
                  ]
                },
                {
                  "type": "FIELD",
                  "name": "rhs",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_expr_single"
                  }
                }
              ]
            }
          }
        ]
      }
    },
    "multiplicative_expr": {
      "type": "PREC_LEFT",
      "value": 9,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "lhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "REPEAT1",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "*"
                    },
                    {
                      "type": "STRING",
                      "value": "div"
                    },
                    {
                      "type": "STRING",
                      "value": "idiv"
                    },
                    {
                      "type": "STRING",
                      "value": "mod"
                    }
                  ]
                },
                {
                  "type": "FIELD",
                  "name": "rhs",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_expr_single"
                  }
                }
              ]
            }
          }
        ]
      }
    },
    "union_expr": {
      "type": "PREC_LEFT",
      "value": 10,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "lhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "REPEAT1",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "union"
                    },
                    {
                      "type": "STRING",
                      "value": "|"
                    }
                  ]
                },
                {
                  "type": "FIELD",
                  "name": "rhs",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_expr_single"
                  }
                }
              ]
            }
          }
        ]
      }
    },
    "intersect_except_expr": {
      "type": "PREC_LEFT",
      "value": 11,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "lhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "REPEAT1",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "intersect"
                    },
                    {
                      "type": "STRING",
                      "value": "except"
                    }
                  ]
                },
                {
                  "type": "FIELD",
                  "name": "rhs",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_expr_single"
                  }
                }
              ]
            }
          }
        ]
      }
    },
    "instance_of_expr": {
      "type": "PREC_LEFT",
      "value": 12,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "lhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "STRING",
            "value": "instance"
          },
          {
            "type": "STRING",
            "value": "of"
          },
          {
            "type": "FIELD",
            "name": "rhs",
            "content": {
              "type": "SYMBOL",
              "name": "sequence_type"
            }
          }
        ]
      }
    },
    "treat_expr": {
      "type": "PREC",
      "value": 13,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "lhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "STRING",
            "value": "treat"
          },
          {
            "type": "STRING",
            "value": "as"
          },
          {
            "type": "FIELD",
            "name": "rhs",
            "content": {
              "type": "SYMBOL",
              "name": "sequence_type"
            }
          }
        ]
      }
    },
    "castable_expr": {
      "type": "PREC",
      "value": 14,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "lhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "STRING",
            "value": "castable"
          },
          {
            "type": "STRING",
            "value": "as"
          },
          {
            "type": "FIELD",
            "name": "simple_type",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_EQName"
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "IMMEDIATE_TOKEN",
                      "content": {
                        "type": "STRING",
                        "value": "?"
                      }
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            }
          }
        ]
      }
    },
    "cast_expr": {
      "type": "PREC",
      "value": 14,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "lhs",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "STRING",
            "value": "cast"
          },
          {
            "type": "STRING",
            "value": "as"
          },
          {
            "type": "FIELD",
            "name": "simple_type",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_EQName"
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "IMMEDIATE_TOKEN",
                      "content": {
                        "type": "STRING",
                        "value": "?"
                      }
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            }
          }
        ]
      }
    },
    "arrow_expr": {
      "type": "PREC_LEFT",
      "value": 16,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "expression_value",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "REPEAT1",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "=>"
                },
                {
                  "type": "SYMBOL",
                  "name": "arrow_function"
                }
              ]
            }
          }
        ]
      }
    },
    "arrow_function": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_EQName"
            },
            {
              "type": "SYMBOL",
              "name": "var_ref"
            },
            {
              "type": "SYMBOL",
              "name": "parenthesized_expr"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "arg_list"
        }
      ]
    },
    "unary_expr": {
      "type": "PREC_RIGHT",
      "value": 17,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "STRING",
                "value": "+"
              },
              {
                "type": "STRING",
                "value": "-"
              }
            ]
          },
          {
            "type": "SYMBOL",
            "name": "_expr_single"
          }
        ]
      }
    },
    "bang_expr": {
      "type": "PREC_LEFT",
      "value": 18,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "sequence",
            "content": {
              "type": "SYMBOL",
              "name": "_expr_single"
            }
          },
          {
            "type": "REPEAT1",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "!"
                },
                {
                  "type": "FIELD",
                  "name": "dynamic_context",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_expr_single"
                  }
                }
              ]
            }
          }
        ]
      }
    },
    "_postfix_expr": {
      "type": "PREC_LEFT",
      "value": 20,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_primary_expr"
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "SYMBOL",
              "name": "_postfix"
            }
          }
        ]
      }
    },
    "_postfix": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "PREC_LEFT",
              "value": 20,
              "content": {
                "type": "FIELD",
                "name": "filter_expr",
                "content": {
                  "type": "SYMBOL",
                  "name": "predicate"
                }
              }
            },
            {
              "type": "PREC_LEFT",
              "value": 20,
              "content": {
                "type": "FIELD",
                "name": "dynamic_function_call",
                "content": {
                  "type": "SYMBOL",
                  "name": "arg_list"
                }
              }
            },
            {
              "type": "PREC_LEFT",
              "value": 20,
              "content": {
                "type": "SYMBOL",
                "name": "postfix_lookup"
              }
            }
          ]
        }
      ]
    },
    "predicate": {
      "type": "PREC_LEFT",
      "value": 20,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "["
          },
          {
            "type": "SYMBOL",
            "name": "_expr_single"
          },
          {
            "type": "STRING",
            "value": "]"
          }
        ]
      }
    },
    "postfix_lookup": {
      "type": "PREC_LEFT",
      "value": 20,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "?"
          },
          {
            "type": "FIELD",
            "name": "key",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_ncname"
                },
                {
                  "type": "SYMBOL",
                  "name": "integer_literal"
                },
                {
                  "type": "SYMBOL",
                  "name": "parenthesized_expr"
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "*"
                  },
                  "named": true,
                  "value": "wildcard"
                }
              ]
            }
          }
        ]
      }
    },
    "absolute_path_expr": {
      "type": "PREC_LEFT",
      "value": 19,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": "//"
                  },
                  {
                    "type": "STRING",
                    "value": "/"
                  }
                ]
              },
              {
                "type": "SYMBOL",
                "name": "rel_path_expr"
              }
            ]
          },
          {
            "type": "STRING",
            "value": "/"
          }
        ]
      }
    },
    "rel_path_expr": {
      "type": "PREC_LEFT",
      "value": 19,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_step_expr"
          },
          {
            "type": "REPEAT",
            "content": {
              "type": "SEQ",
              "members": [
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "STRING",
                      "value": "/"
                    },
                    {
                      "type": "STRING",
                      "value": "//"
                    }
                  ]
                },
                {
                  "type": "SYMBOL",
                  "name": "_step_expr"
                }
              ]
            }
          }
        ]
      }
    },
    "_step_expr": {
      "type": "PREC_LEFT",
      "value": 19,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_postfix_expr"
              },
              {
                "type": "SYMBOL",
                "name": "_axis_step"
              }
            ]
          }
        ]
      }
    },
    "_axis_step": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "axis",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_forward_step"
              },
              {
                "type": "SYMBOL",
                "name": "_reverse_step"
              }
            ]
          }
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "PREC_LEFT",
            "value": 20,
            "content": {
              "type": "FIELD",
              "name": "filter",
              "content": {
                "type": "SYMBOL",
                "name": "predicate"
              }
            }
          }
        }
      ]
    },
    "_reverse_step": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "reverse_axis"
        },
        {
          "type": "SYMBOL",
          "name": "abbrev_reverse_step"
        }
      ]
    },
    "abbrev_reverse_step": {
      "type": "STRING",
      "value": ".."
    },
    "_forward_step": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "forward_axis"
        },
        {
          "type": "SYMBOL",
          "name": "abbrev_forward_step"
        }
      ]
    },
    "forward_axis": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "child"
            },
            {
              "type": "STRING",
              "value": "descendant"
            },
            {
              "type": "STRING",
              "value": "attribute"
            },
            {
              "type": "STRING",
              "value": "self"
            },
            {
              "type": "STRING",
              "value": "descendant-or-self"
            },
            {
              "type": "STRING",
              "value": "following-sibling"
            },
            {
              "type": "STRING",
              "value": "following"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "::"
        },
        {
          "type": "SYMBOL",
          "name": "_node_test"
        }
      ]
    },
    "reverse_axis": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "parent"
            },
            {
              "type": "STRING",
              "value": "ancestor"
            },
            {
              "type": "STRING",
              "value": "preceding-sibling"
            },
            {
              "type": "STRING",
              "value": "preceding"
            },
            {
              "type": "STRING",
              "value": "ancestor-or-self"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "::"
        },
        {
          "type": "SYMBOL",
          "name": "_node_test"
        }
      ]
    },
    "abbrev_forward_step": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "STRING",
                "value": "@"
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "SYMBOL",
            "name": "_node_test"
          }
        ]
      }
    },
    "_node_test": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "name_test"
        },
        {
          "type": "SYMBOL",
          "name": "_kind_test"
        }
      ]
    },
    "name_test": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_EQName"
        },
        {
          "type": "SYMBOL",
          "name": "wildcard"
        }
      ]
    },
    "wildcard": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "*"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_ncname"
            },
            {
              "type": "STRING",
              "value": ":*"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "*:"
            },
            {
              "type": "SYMBOL",
              "name": "_ncname"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "braced_uri_literal"
            },
            {
              "type": "STRING",
              "value": "*"
            }
          ]
        }
      ]
    },
    "_primary_expr": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_literal"
        },
        {
          "type": "SYMBOL",
          "name": "var_ref"
        },
        {
          "type": "SYMBOL",
          "name": "parenthesized_expr"
        },
        {
          "type": "SYMBOL",
          "name": "context_item_expr"
        },
        {
          "type": "SYMBOL",
          "name": "function_call"
        },
        {
          "type": "SYMBOL",
          "name": "ordered_expr"
        },
        {
          "type": "SYMBOL",
          "name": "unordered_expr"
        },
        {
          "type": "SYMBOL",
          "name": "_node_constructor"
        },
        {
          "type": "SYMBOL",
          "name": "_func_constructors"
        },
        {
          "type": "FIELD",
          "name": "constructor",
          "content": {
            "type": "SYMBOL",
            "name": "string_constructor"
          }
        },
        {
          "type": "SYMBOL",
          "name": "unary_lookup"
        }
      ]
    },
    "_node_constructor": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "direct_constructor"
        },
        {
          "type": "SYMBOL",
          "name": "_computed_constructor"
        }
      ]
    },
    "_func_constructors": {
      "type": "FIELD",
      "name": "constructor",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "function_item_expr"
          },
          {
            "type": "SYMBOL",
            "name": "map_constructor"
          },
          {
            "type": "SYMBOL",
            "name": "square_array_constructor"
          },
          {
            "type": "SYMBOL",
            "name": "curly_array_constructor"
          }
        ]
      }
    },
    "direct_constructor": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "direct_element"
        },
        {
          "type": "SYMBOL",
          "name": "direct_comment"
        }
      ]
    },
    "direct_comment": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "<!--"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "PATTERN",
            "value": "[^->]|[^-]>|[^-]->"
          }
        },
        {
          "type": "STRING",
          "value": "-->"
        }
      ]
    },
    "direct_element": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "start_tag"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SYMBOL",
                "name": "_direct_element_content"
              }
            },
            {
              "type": "SYMBOL",
              "name": "end_tag"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "empty_tag"
        }
      ]
    },
    "_direct_element_content": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "direct_constructor"
        },
        {
          "type": "SYMBOL",
          "name": "_common_content"
        },
        {
          "type": "SYMBOL",
          "name": "_element_content_char"
        }
      ]
    },
    "_element_content_char": {
      "type": "FIELD",
      "name": "content",
      "content": {
        "type": "ALIAS",
        "content": {
          "type": "PATTERN",
          "value": "[^{}<&]+"
        },
        "named": true,
        "value": "char_data"
      }
    },
    "start_tag": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "<"
        },
        {
          "type": "SYMBOL",
          "name": "_allowed_qnames"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "direct_attribute"
          }
        },
        {
          "type": "STRING",
          "value": ">"
        }
      ]
    },
    "end_tag": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "</"
        },
        {
          "type": "SYMBOL",
          "name": "_allowed_qnames"
        },
        {
          "type": "STRING",
          "value": ">"
        }
      ]
    },
    "empty_tag": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "<"
        },
        {
          "type": "SYMBOL",
          "name": "_allowed_qnames"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "direct_attribute"
          }
        },
        {
          "type": "STRING",
          "value": "/>"
        }
      ]
    },
    "direct_attribute": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_allowed_qnames"
        },
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "SYMBOL",
          "name": "attribute_value"
        }
      ]
    },
    "attribute_value": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_attr_quote_value"
        },
        {
          "type": "SYMBOL",
          "name": "_attr_apos_value"
        }
      ]
    },
    "_attr_quote_value": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "\""
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_common_content"
              },
              {
                "type": "SYMBOL",
                "name": "escape_quote"
              },
              {
                "type": "ALIAS",
                "content": {
                  "type": "PATTERN",
                  "value": "[^\"{}<&]+"
                },
                "named": true,
                "value": "char_data"
              }
            ]
          }
        },
        {
          "type": "STRING",
          "value": "\""
        }
      ]
    },
    "_attr_apos_value": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "'"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_common_content"
              },
              {
                "type": "SYMBOL",
                "name": "escape_apos"
              },
              {
                "type": "ALIAS",
                "content": {
                  "type": "PATTERN",
                  "value": "[^'{}<&]+"
                },
                "named": true,
                "value": "char_data"
              }
            ]
          }
        },
        {
          "type": "STRING",
          "value": "'"
        }
      ]
    },
    "_common_content": {
      "type": "FIELD",
      "name": "content",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "predefined_entity_ref"
          },
          {
            "type": "SYMBOL",
            "name": "char_ref"
          },
          {
            "type": "SYMBOL",
            "name": "escape_enclosed"
          },
          {
            "type": "SYMBOL",
            "name": "enclosed_expr"
          }
        ]
      }
    },
    "escape_enclosed": {
      "type": "FIELD",
      "name": "content",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "STRING",
            "value": "{{"
          },
          {
            "type": "STRING",
            "value": "}}"
          }
        ]
      }
    },
    "_computed_constructor": {
      "type": "FIELD",
      "name": "computed_constructor",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "comp_doc_constructor"
          },
          {
            "type": "SYMBOL",
            "name": "comp_elem_constructor"
          },
          {
            "type": "SYMBOL",
            "name": "comp_attr_constructor"
          },
          {
            "type": "SYMBOL",
            "name": "comp_namespace_constructor"
          },
          {
            "type": "SYMBOL",
            "name": "comp_text_constructor"
          },
          {
            "type": "SYMBOL",
            "name": "comp_comment_constructor"
          },
          {
            "type": "SYMBOL",
            "name": "comp_pi_constructor"
          }
        ]
      }
    },
    "comp_doc_constructor": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "document"
        },
        {
          "type": "FIELD",
          "name": "content",
          "content": {
            "type": "SYMBOL",
            "name": "enclosed_expr"
          }
        }
      ]
    },
    "comp_elem_constructor": {
      "type": "PREC_LEFT",
      "value": 2,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "element"
          },
          {
            "type": "SYMBOL",
            "name": "_construct"
          }
        ]
      }
    },
    "comp_attr_constructor": {
      "type": "PREC_LEFT",
      "value": 2,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "attribute"
          },
          {
            "type": "SYMBOL",
            "name": "_construct"
          }
        ]
      }
    },
    "_construct": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_EQName"
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "{"
                },
                {
                  "type": "SYMBOL",
                  "name": "_expr"
                },
                {
                  "type": "STRING",
                  "value": "}"
                }
              ]
            }
          ]
        },
        {
          "type": "FIELD",
          "name": "content",
          "content": {
            "type": "SYMBOL",
            "name": "enclosed_expr"
          }
        }
      ]
    },
    "comp_text_constructor": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "text"
        },
        {
          "type": "FIELD",
          "name": "content",
          "content": {
            "type": "SYMBOL",
            "name": "enclosed_expr"
          }
        }
      ]
    },
    "comp_comment_constructor": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "comment"
        },
        {
          "type": "FIELD",
          "name": "content",
          "content": {
            "type": "SYMBOL",
            "name": "enclosed_expr"
          }
        }
      ]
    },
    "comp_pi_constructor": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "processing-instruction"
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_ncname"
              },
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "{"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_expr"
                  },
                  {
                    "type": "STRING",
                    "value": "}"
                  }
                ]
              }
            ]
          }
        },
        {
          "type": "FIELD",
          "name": "content",
          "content": {
            "type": "SYMBOL",
            "name": "enclosed_expr"
          }
        }
      ]
    },
    "comp_namespace_constructor": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "namespace"
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_ncname"
              },
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "{"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "_expr"
                  },
                  {
                    "type": "STRING",
                    "value": "}"
                  }
                ]
              }
            ]
          }
        },
        {
          "type": "FIELD",
          "name": "content",
          "content": {
            "type": "SYMBOL",
            "name": "enclosed_expr"
          }
        }
      ]
    },
    "_literal": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_numeric_literal"
        },
        {
          "type": "SYMBOL",
          "name": "string_literal"
        }
      ]
    },
    "var_ref": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "$"
        },
        {
          "type": "SYMBOL",
          "name": "_var_name"
        }
      ]
    },
    "parenthesized_expr": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_expr"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "context_item_expr": {
      "type": "STRING",
      "value": "."
    },
    "function_call": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_EQName"
        },
        {
          "type": "SYMBOL",
          "name": "arg_list"
        }
      ]
    },
    "arg_list": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_argument"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "SYMBOL",
                        "name": "_argument"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "_argument": {
      "type": "FIELD",
      "name": "arg",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "_expr_single"
          },
          {
            "type": "SYMBOL",
            "name": "placeholder"
          }
        ]
      }
    },
    "placeholder": {
      "type": "STRING",
      "value": "?"
    },
    "ordered_expr": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "ordered"
        },
        {
          "type": "SYMBOL",
          "name": "enclosed_expr"
        }
      ]
    },
    "unordered_expr": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "unordered"
        },
        {
          "type": "SYMBOL",
          "name": "enclosed_expr"
        }
      ]
    },
    "unary_lookup": {
      "type": "PREC_LEFT",
      "value": 21,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "?"
          },
          {
            "type": "FIELD",
            "name": "key",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_ncname"
                },
                {
                  "type": "SYMBOL",
                  "name": "integer_literal"
                },
                {
                  "type": "SYMBOL",
                  "name": "parenthesized_expr"
                },
                {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "*"
                  },
                  "named": true,
                  "value": "wildcard"
                }
              ]
            }
          }
        ]
      }
    },
    "function_item_expr": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "named_function_ref"
        },
        {
          "type": "SYMBOL",
          "name": "inline_function_expr"
        }
      ]
    },
    "named_function_ref": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_EQName"
        },
        {
          "type": "IMMEDIATE_TOKEN",
          "content": {
            "type": "STRING",
            "value": "#"
          }
        },
        {
          "type": "FIELD",
          "name": "signature",
          "content": {
            "type": "SYMBOL",
            "name": "integer_literal"
          }
        }
      ]
    },
    "inline_function_expr": {
      "type": "SEQ",
      "members": [
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "annotation"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "function"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "param_list"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "FIELD",
              "name": "return_type",
              "content": {
                "type": "SYMBOL",
                "name": "type_declaration"
              }
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "SYMBOL",
            "name": "enclosed_expr"
          }
        }
      ]
    },
    "type_declaration": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "as"
        },
        {
          "type": "SYMBOL",
          "name": "sequence_type"
        }
      ]
    },
    "sequence_type": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "empty-sequence"
            },
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        },
        {
          "type": "PREC_RIGHT",
          "value": 0,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "_item_type"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "occurrence_indicator"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              }
            ]
          }
        }
      ]
    },
    "_item_type": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_kind_test"
        },
        {
          "type": "SYMBOL",
          "name": "any_item"
        },
        {
          "type": "SYMBOL",
          "name": "_func_test"
        },
        {
          "type": "SYMBOL",
          "name": "atomic_or_union_type"
        },
        {
          "type": "SYMBOL",
          "name": "parenthesized_item_type"
        }
      ]
    },
    "occurrence_indicator": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "?"
        },
        {
          "type": "STRING",
          "value": "*"
        },
        {
          "type": "STRING",
          "value": "+"
        }
      ]
    },
    "atomic_or_union_type": {
      "type": "SYMBOL",
      "name": "_EQName"
    },
    "_func_test": {
      "type": "FIELD",
      "name": "func_test",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "any_function_test"
          },
          {
            "type": "SYMBOL",
            "name": "typed_function_test"
          },
          {
            "type": "SYMBOL",
            "name": "any_map_test"
          },
          {
            "type": "SYMBOL",
            "name": "typed_map_test"
          },
          {
            "type": "SYMBOL",
            "name": "any_array_test"
          },
          {
            "type": "SYMBOL",
            "name": "typed_array_test"
          }
        ]
      }
    },
    "any_item": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "item"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "_kind_test": {
      "type": "FIELD",
      "name": "kind_test",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "document_test"
          },
          {
            "type": "SYMBOL",
            "name": "element_test"
          },
          {
            "type": "SYMBOL",
            "name": "attribute_test"
          },
          {
            "type": "SYMBOL",
            "name": "schema_element_test"
          },
          {
            "type": "SYMBOL",
            "name": "schema_attribute_test"
          },
          {
            "type": "SYMBOL",
            "name": "pi_test"
          },
          {
            "type": "SYMBOL",
            "name": "any_kind_test"
          },
          {
            "type": "SYMBOL",
            "name": "comment_test"
          },
          {
            "type": "SYMBOL",
            "name": "namespace_node_test"
          },
          {
            "type": "SYMBOL",
            "name": "text_test"
          }
        ]
      }
    },
    "any_kind_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "node"
        },
        {
          "type": "IMMEDIATE_TOKEN",
          "content": {
            "type": "STRING",
            "value": "("
          }
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "text_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "text"
        },
        {
          "type": "IMMEDIATE_TOKEN",
          "content": {
            "type": "STRING",
            "value": "("
          }
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "comment_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "comment"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "namespace_node_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "namespace-node"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "document_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "document-node"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "element_test"
                },
                {
                  "type": "SYMBOL",
                  "name": "schema_element_test"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "element_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "element"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "element_test_params"
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        }
      ]
    },
    "element_test_params": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "ALIAS",
                "content": {
                  "type": "STRING",
                  "value": "*"
                },
                "named": true,
                "value": "wildcard"
              },
              {
                "type": "SYMBOL",
                "name": "_EQName"
              }
            ]
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": ","
                },
                {
                  "type": "FIELD",
                  "name": "type",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "SYMBOL",
                        "name": "_EQName"
                      },
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "ALIAS",
                            "content": {
                              "type": "STRING",
                              "value": "?"
                            },
                            "named": true,
                            "value": "occurrence_indicator"
                          },
                          {
                            "type": "BLANK"
                          }
                        ]
                      }
                    ]
                  }
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "attribute_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "attribute"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "_attrib_name_or_wildcard"
                },
                {
                  "type": "CHOICE",
                  "members": [
                    {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": ","
                        },
                        {
                          "type": "FIELD",
                          "name": "type_name",
                          "content": {
                            "type": "SYMBOL",
                            "name": "_EQName"
                          }
                        }
                      ]
                    },
                    {
                      "type": "BLANK"
                    }
                  ]
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "_attrib_name_or_wildcard": {
      "type": "CHOICE",
      "members": [
        {
          "type": "FIELD",
          "name": "attribute_name",
          "content": {
            "type": "SYMBOL",
            "name": "_EQName"
          }
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": "*"
          },
          "named": true,
          "value": "wildcard"
        }
      ]
    },
    "schema_element_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "schema-element"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "FIELD",
          "name": "element_name",
          "content": {
            "type": "SYMBOL",
            "name": "_EQName"
          }
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "schema_attribute_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "schema-attribute"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "FIELD",
          "name": "attribute_name",
          "content": {
            "type": "SYMBOL",
            "name": "_EQName"
          }
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "pi_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "processing-instruction"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "FIELD",
                  "name": "param",
                  "content": {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "SYMBOL",
                        "name": "_ncname"
                      },
                      {
                        "type": "SYMBOL",
                        "name": "string_literal"
                      }
                    ]
                  }
                },
                {
                  "type": "BLANK"
                }
              ]
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        }
      ]
    },
    "any_function_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "annotation"
          }
        },
        {
          "type": "STRING",
          "value": "function"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "ALIAS",
              "content": {
                "type": "STRING",
                "value": "*"
              },
              "named": true,
              "value": "wildcard"
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        }
      ]
    },
    "typed_function_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "annotation"
          }
        },
        {
          "type": "STRING",
          "value": "function"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SYMBOL",
          "name": "sequence_type"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "SYMBOL",
                "name": "sequence_type"
              }
            ]
          }
        },
        {
          "type": "STRING",
          "value": ")"
        },
        {
          "type": "SYMBOL",
          "name": "type_declaration"
        }
      ]
    },
    "any_map_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "map"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": "*"
          },
          "named": true,
          "value": "wildcard"
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "typed_map_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "map"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SYMBOL",
          "name": "atomic_or_union_type"
        },
        {
          "type": "STRING",
          "value": ","
        },
        {
          "type": "SYMBOL",
          "name": "sequence_type"
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "any_array_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "array"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "STRING",
            "value": "*"
          },
          "named": true,
          "value": "wildcard"
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "typed_array_test": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "array"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SYMBOL",
          "name": "sequence_type"
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "parenthesized_item_type": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SYMBOL",
          "name": "_item_type"
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "annotation": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "%"
        },
        {
          "type": "SYMBOL",
          "name": "_EQName"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "STRING",
                  "value": "("
                },
                {
                  "type": "SYMBOL",
                  "name": "_literal"
                },
                {
                  "type": "REPEAT",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "SYMBOL",
                        "name": "_literal"
                      }
                    ]
                  }
                },
                {
                  "type": "STRING",
                  "value": ")"
                }
              ]
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "enclosed_expr": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_expr"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "map_constructor": {
      "type": "PREC_LEFT",
      "value": 2,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "map"
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "{"
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "map_entry"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "REPEAT",
                "content": {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": ","
                    },
                    {
                      "type": "SYMBOL",
                      "name": "map_entry"
                    }
                  ]
                }
              },
              {
                "type": "STRING",
                "value": "}"
              }
            ]
          }
        ]
      }
    },
    "map_entry": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "key",
          "content": {
            "type": "SYMBOL",
            "name": "_expr_single"
          }
        },
        {
          "type": "STRING",
          "value": ":"
        },
        {
          "type": "FIELD",
          "name": "value",
          "content": {
            "type": "SYMBOL",
            "name": "_expr_single"
          }
        }
      ]
    },
    "curly_array_constructor": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "array"
        },
        {
          "type": "FIELD",
          "name": "content",
          "content": {
            "type": "SYMBOL",
            "name": "enclosed_expr"
          }
        }
      ]
    },
    "square_array_constructor": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "["
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "_expr_single"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "SYMBOL",
                "name": "_expr_single"
              }
            ]
          }
        },
        {
          "type": "STRING",
          "value": "]"
        }
      ]
    },
    "string_constructor": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "``["
        },
        {
          "type": "SYMBOL",
          "name": "string_constructor_chars"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "interpolation"
              },
              {
                "type": "SYMBOL",
                "name": "string_constructor_chars"
              }
            ]
          }
        },
        {
          "type": "STRING",
          "value": "]``"
        }
      ]
    },
    "string_constructor_chars": {
      "type": "REPEAT1",
      "content": {
        "type": "PATTERN",
        "value": "[^`{\\]]|[\\]][^`]|[\\]]`[^`]|[^`][{]|[{][`{\\]]|`[^{]"
      }
    },
    "interpolation": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "`{"
        },
        {
          "type": "SYMBOL",
          "name": "_expr"
        },
        {
          "type": "STRING",
          "value": "}`"
        }
      ]
    },
    "string_literal": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_string_quote"
        },
        {
          "type": "SYMBOL",
          "name": "_string_apos"
        }
      ]
    },
    "_string_quote": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "\""
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_string_quote_content"
          }
        },
        {
          "type": "STRING",
          "value": "\""
        }
      ]
    },
    "_string_quote_content": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "predefined_entity_ref"
        },
        {
          "type": "SYMBOL",
          "name": "char_ref"
        },
        {
          "type": "SYMBOL",
          "name": "escape_quote"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[^\"&]+"
          },
          "named": true,
          "value": "char_data"
        }
      ]
    },
    "_string_apos": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "'"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_string_apos_content"
          }
        },
        {
          "type": "STRING",
          "value": "'"
        }
      ]
    },
    "_string_apos_content": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "predefined_entity_ref"
        },
        {
          "type": "SYMBOL",
          "name": "char_ref"
        },
        {
          "type": "SYMBOL",
          "name": "escape_apos"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "PATTERN",
            "value": "[^'&]+"
          },
          "named": true,
          "value": "char_data"
        }
      ]
    },
    "predefined_entity_ref": {
      "type": "PATTERN",
      "value": "&(lt|gt|amp|quot|apos);"
    },
    "escape_quote": {
      "type": "STRING",
      "value": "\"\""
    },
    "escape_apos": {
      "type": "STRING",
      "value": "''"
    },
    "char_ref": {
      "type": "PATTERN",
      "value": "&#[0-9]+;|&#x[0-9a-fA-F]+;"
    },
    "_numeric_literal": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "double_literal"
        },
        {
          "type": "SYMBOL",
          "name": "decimal_literal"
        },
        {
          "type": "SYMBOL",
          "name": "integer_literal"
        }
      ]
    },
    "double_literal": {
      "type": "PATTERN",
      "value": "(\\.\\d+)|(\\d+\\.\\d*|\\d+)[eE][+-]{0,1}\\d+"
    },
    "decimal_literal": {
      "type": "PATTERN",
      "value": "(\\.\\d+)|(\\d+\\.\\d*)"
    },
    "integer_literal": {
      "type": "PATTERN",
      "value": "\\d+"
    },
    "variable": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "$"
        },
        {
          "type": "SYMBOL",
          "name": "_var_name"
        }
      ]
    },
    "_var_name": {
      "type": "SYMBOL",
      "name": "_EQName"
    },
    "_EQName": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_allowed_qnames"
        },
        {
          "type": "SYMBOL",
          "name": "uri_qualified_name"
        }
      ]
    },
    "_allowed_qnames": {
      "type": "CHOICE",
      "members": [
        {
          "type": "FIELD",
          "name": "ncname",
          "content": {
            "type": "SYMBOL",
            "name": "_ncname"
          }
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "FIELD",
              "name": "prefixed",
              "content": {
                "type": "SYMBOL",
                "name": "_ncname"
              }
            },
            {
              "type": "IMMEDIATE_TOKEN",
              "content": {
                "type": "STRING",
                "value": ":"
              }
            },
            {
              "type": "FIELD",
              "name": "local",
              "content": {
                "type": "SYMBOL",
                "name": "_ncname"
              }
            }
          ]
        }
      ]
    },
    "_ncname": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "identifier"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "_non_delimiting_word"
          },
          "named": true,
          "value": "identifier"
        }
      ]
    },
    "uri_qualified_name": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "braced_uri_literal",
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "braced_uri_literal"
            },
            "named": true,
            "value": "identifier"
          }
        },
        {
          "type": "SYMBOL",
          "name": "_ncname"
        }
      ]
    },
    "braced_uri_literal": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "Q{"
        },
        {
          "type": "REPEAT1",
          "content": {
            "type": "PATTERN",
            "value": "&(#[0-9]+|#x[0-9a-fA-F]+);|&(lt|gt|amp|quot|apos);|[^&{}]"
          }
        },
        {
          "type": "IMMEDIATE_TOKEN",
          "content": {
            "type": "STRING",
            "value": "}"
          }
        }
      ]
    },
    "_non_delimiting_word": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "ALIAS",
        "content": {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "NaN"
            },
            {
              "type": "STRING",
              "value": "allowing"
            },
            {
              "type": "STRING",
              "value": "ancestor"
            },
            {
              "type": "STRING",
              "value": "ancestor-or-self"
            },
            {
              "type": "STRING",
              "value": "and"
            },
            {
              "type": "STRING",
              "value": "array"
            },
            {
              "type": "STRING",
              "value": "as"
            },
            {
              "type": "STRING",
              "value": "ascending"
            },
            {
              "type": "STRING",
              "value": "at"
            },
            {
              "type": "STRING",
              "value": "attribute"
            },
            {
              "type": "STRING",
              "value": "base-uri"
            },
            {
              "type": "STRING",
              "value": "boundary-space"
            },
            {
              "type": "STRING",
              "value": "by"
            },
            {
              "type": "STRING",
              "value": "case"
            },
            {
              "type": "STRING",
              "value": "cast"
            },
            {
              "type": "STRING",
              "value": "castable"
            },
            {
              "type": "STRING",
              "value": "catch"
            },
            {
              "type": "STRING",
              "value": "child"
            },
            {
              "type": "STRING",
              "value": "collation"
            },
            {
              "type": "STRING",
              "value": "comment"
            },
            {
              "type": "STRING",
              "value": "construction"
            },
            {
              "type": "STRING",
              "value": "context"
            },
            {
              "type": "STRING",
              "value": "copy-namespaces"
            },
            {
              "type": "STRING",
              "value": "count"
            },
            {
              "type": "STRING",
              "value": "decimal-format"
            },
            {
              "type": "STRING",
              "value": "decimal-separator"
            },
            {
              "type": "STRING",
              "value": "declare"
            },
            {
              "type": "STRING",
              "value": "default"
            },
            {
              "type": "STRING",
              "value": "descendant"
            },
            {
              "type": "STRING",
              "value": "descendant-or-self"
            },
            {
              "type": "STRING",
              "value": "descending"
            },
            {
              "type": "STRING",
              "value": "digit"
            },
            {
              "type": "STRING",
              "value": "div"
            },
            {
              "type": "STRING",
              "value": "document"
            },
            {
              "type": "STRING",
              "value": "document-node"
            },
            {
              "type": "STRING",
              "value": "element"
            },
            {
              "type": "STRING",
              "value": "else"
            },
            {
              "type": "STRING",
              "value": "empty"
            },
            {
              "type": "STRING",
              "value": "empty-sequence"
            },
            {
              "type": "STRING",
              "value": "encoding"
            },
            {
              "type": "STRING",
              "value": "end"
            },
            {
              "type": "STRING",
              "value": "eq"
            },
            {
              "type": "STRING",
              "value": "every"
            },
            {
              "type": "STRING",
              "value": "except"
            },
            {
              "type": "STRING",
              "value": "exponent-separator"
            },
            {
              "type": "STRING",
              "value": "external"
            },
            {
              "type": "STRING",
              "value": "following"
            },
            {
              "type": "STRING",
              "value": "following-sibling"
            },
            {
              "type": "STRING",
              "value": "for"
            },
            {
              "type": "STRING",
              "value": "function"
            },
            {
              "type": "STRING",
              "value": "ge"
            },
            {
              "type": "STRING",
              "value": "greatest"
            },
            {
              "type": "STRING",
              "value": "group"
            },
            {
              "type": "STRING",
              "value": "grouping-separator"
            },
            {
              "type": "STRING",
              "value": "gt"
            },
            {
              "type": "STRING",
              "value": "idiv"
            },
            {
              "type": "STRING",
              "value": "if"
            },
            {
              "type": "STRING",
              "value": "import"
            },
            {
              "type": "STRING",
              "value": "in"
            },
            {
              "type": "STRING",
              "value": "infinity"
            },
            {
              "type": "STRING",
              "value": "inherit"
            },
            {
              "type": "STRING",
              "value": "instance"
            },
            {
              "type": "STRING",
              "value": "intersect"
            },
            {
              "type": "STRING",
              "value": "is"
            },
            {
              "type": "STRING",
              "value": "item"
            },
            {
              "type": "STRING",
              "value": "lax"
            },
            {
              "type": "STRING",
              "value": "le"
            },
            {
              "type": "STRING",
              "value": "least"
            },
            {
              "type": "STRING",
              "value": "let"
            },
            {
              "type": "STRING",
              "value": "lt"
            },
            {
              "type": "STRING",
              "value": "map"
            },
            {
              "type": "STRING",
              "value": "minus-sign"
            },
            {
              "type": "STRING",
              "value": "mod"
            },
            {
              "type": "STRING",
              "value": "module"
            },
            {
              "type": "STRING",
              "value": "namespace"
            },
            {
              "type": "STRING",
              "value": "namespace-node"
            },
            {
              "type": "STRING",
              "value": "ne"
            },
            {
              "type": "STRING",
              "value": "next"
            },
            {
              "type": "STRING",
              "value": "no-inherit"
            },
            {
              "type": "STRING",
              "value": "no-preserve"
            },
            {
              "type": "STRING",
              "value": "node"
            },
            {
              "type": "STRING",
              "value": "of"
            },
            {
              "type": "STRING",
              "value": "only"
            },
            {
              "type": "STRING",
              "value": "option"
            },
            {
              "type": "STRING",
              "value": "or"
            },
            {
              "type": "STRING",
              "value": "order"
            },
            {
              "type": "STRING",
              "value": "ordered"
            },
            {
              "type": "STRING",
              "value": "ordering"
            },
            {
              "type": "STRING",
              "value": "parent"
            },
            {
              "type": "STRING",
              "value": "pattern-separator"
            },
            {
              "type": "STRING",
              "value": "per-mille"
            },
            {
              "type": "STRING",
              "value": "percent"
            },
            {
              "type": "STRING",
              "value": "preceding"
            },
            {
              "type": "STRING",
              "value": "preceding-sibling"
            },
            {
              "type": "STRING",
              "value": "preserve"
            },
            {
              "type": "STRING",
              "value": "previous"
            },
            {
              "type": "STRING",
              "value": "processing-instruction"
            },
            {
              "type": "STRING",
              "value": "return"
            },
            {
              "type": "STRING",
              "value": "satisfies"
            },
            {
              "type": "STRING",
              "value": "schema"
            },
            {
              "type": "STRING",
              "value": "schema-attribute"
            },
            {
              "type": "STRING",
              "value": "schema-element"
            },
            {
              "type": "STRING",
              "value": "self"
            },
            {
              "type": "STRING",
              "value": "sliding"
            },
            {
              "type": "STRING",
              "value": "some"
            },
            {
              "type": "STRING",
              "value": "stable"
            },
            {
              "type": "STRING",
              "value": "start"
            },
            {
              "type": "STRING",
              "value": "strict"
            },
            {
              "type": "STRING",
              "value": "strip"
            },
            {
              "type": "STRING",
              "value": "switch"
            },
            {
              "type": "STRING",
              "value": "text"
            },
            {
              "type": "STRING",
              "value": "then"
            },
            {
              "type": "STRING",
              "value": "to"
            },
            {
              "type": "STRING",
              "value": "treat"
            },
            {
              "type": "STRING",
              "value": "try"
            },
            {
              "type": "STRING",
              "value": "tumbling"
            },
            {
              "type": "STRING",
              "value": "type"
            },
            {
              "type": "STRING",
              "value": "typeswitch"
            },
            {
              "type": "STRING",
              "value": "union"
            },
            {
              "type": "STRING",
              "value": "unordered"
            },
            {
              "type": "STRING",
              "value": "validate"
            },
            {
              "type": "STRING",
              "value": "variable"
            },
            {
              "type": "STRING",
              "value": "version"
            },
            {
              "type": "STRING",
              "value": "when"
            },
            {
              "type": "STRING",
              "value": "where"
            },
            {
              "type": "STRING",
              "value": "window"
            },
            {
              "type": "STRING",
              "value": "xquery"
            },
            {
              "type": "STRING",
              "value": "zero-digit"
            }
          ]
        },
        "named": true,
        "value": "identifier"
      }
    },
    "char_data": {
      "type": "PATTERN",
      "value": "[^\\p{C}]"
    },
    "identifier": {
      "type": "PATTERN",
      "value": "[_\\p{XID_Start}][-_\\p{XID_Continue}]*"
    },
    "comment": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "(:"
        },
        {
          "type": "REPEAT1",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "comment"
              },
              {
                "type": "PREC_RIGHT",
                "value": 0,
                "content": {
                  "type": "PATTERN",
                  "value": "[^:()]|[^:][)]|[(][^:]|[:][^)]"
                }
              }
            ]
          }
        },
        {
          "type": "IMMEDIATE_TOKEN",
          "content": {
            "type": "STRING",
            "value": ":)"
          }
        }
      ]
    }
  },
  "extras": [
    {
      "type": "SYMBOL",
      "name": "comment"
    },
    {
      "type": "PATTERN",
      "value": "[\\s\\p{Zs}\\uFEFF\\u2060\\u200B]"
    }
  ],
  "conflicts": [],
  "precedences": [],
  "externals": [],
  "inline": [],
  "supertypes": [
    "_setter",
    "_kind_test",
    "_primary_expr",
    "_value_comp",
    "_node_comp",
    "_general_comp",
    "_node_constructor",
    "_computed_constructor",
    "_item_type",
    "_common_content",
    "_numeric_literal"
  ]
}

