GRAMMAR_JSON

Constant GRAMMAR_JSON 

Source
pub const GRAMMAR_JSON: &str = "{\n  \"name\": \"bitbake\",\n  \"rules\": {\n    \"recipe\": {\n      \"type\": \"REPEAT\",\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"variable_assignment\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"unset_statement\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"inherit_directive\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"include_directive\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"require_directive\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"export_statement\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"overrides_statement\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"export_functions_statement\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"addtask_statement\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"deltask_statement\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"addhandler_statement\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"anonymous_python_function\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"function_definition\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"python_function_definition\"\n              }\n            ]\n          },\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"PATTERN\",\n                \"value\": \"\\\\r?\\\\n\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"\\u0000\"\n              }\n            ]\n          }\n        ]\n      }\n    },\n    \"variable_assignment\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"identifier\"\n            },\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"concatenation\"\n            }\n          ]\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"CHOICE\",\n              \"members\": [\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"variable_flag\"\n                },\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"variable_expansion\"\n                },\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"override\"\n                }\n              ]\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"operator\",\n          \"content\": {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"STRING\",\n                \"value\": \"=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"?=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"??=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \":=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"+=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"=+\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \".=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"=.\"\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"literal\"\n        }\n      ]\n    },\n    \"variable_flag\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"[\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \"noexec\"\n            },\n            {\n              \"type\": \"ALIAS\",\n              \"content\": {\n                \"type\": \"PATTERN\",\n                \"value\": \"[^ \\\\r\\\\n\\\\]]+\"\n              },\n              \"named\": true,\n              \"value\": \"flag\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"]\"\n        }\n      ]\n    },\n    \"override\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"CHOICE\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"append\"\n                },\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"prepend\"\n                },\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"remove\"\n                },\n                {\n                  \"type\": \"SEQ\",\n                  \"members\": [\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"identifier\"\n                    },\n                    {\n                      \"type\": \"CHOICE\",\n                      \"members\": [\n                        {\n                          \"type\": \"SYMBOL\",\n                          \"name\": \"variable_flag\"\n                        },\n                        {\n                          \"type\": \"BLANK\"\n                        }\n                      ]\n                    }\n                  ]\n                },\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"variable_expansion\"\n                },\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"concatenation\"\n                }\n              ]\n            },\n            {\n              \"type\": \"REPEAT\",\n              \"content\": {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \":\"\n                  },\n                  {\n                    \"type\": \"CHOICE\",\n                    \"members\": [\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \"append\"\n                      },\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \"prepend\"\n                      },\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \"remove\"\n                      },\n                      {\n                        \"type\": \"SEQ\",\n                        \"members\": [\n                          {\n                            \"type\": \"SYMBOL\",\n                            \"name\": \"identifier\"\n                          },\n                          {\n                            \"type\": \"CHOICE\",\n                            \"members\": [\n                              {\n                                \"type\": \"SYMBOL\",\n                                \"name\": \"variable_flag\"\n                              },\n                              {\n                                \"type\": \"BLANK\"\n                              }\n                            ]\n                          }\n                        ]\n                      },\n                      {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"variable_expansion\"\n                      },\n                      {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"concatenation\"\n                      }\n                    ]\n                  }\n                ]\n              }\n            }\n          ]\n        }\n      ]\n    },\n    \"unset_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"unset\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"identifier\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"variable_flag\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        }\n      ]\n    },\n    \"inherit_directive\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"inherit\"\n        },\n        {\n          \"type\": \"REPEAT1\",\n          \"content\": {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"variable_expansion\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"inline_python\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"inherit_path\"\n              }\n            ]\n          }\n        }\n      ]\n    },\n    \"inherit_path\": {\n      \"type\": \"PATTERN\",\n      \"value\": \"[^$ \\\\r\\\\n][^ \\\\r\\\\n]+\"\n    },\n    \"inherit_configuration_directive\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"INHERIT\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"+=\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"\\\"\"\n        },\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"identifier\"\n            },\n            {\n              \"type\": \"REPEAT\",\n              \"content\": {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \" \"\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"identifier\"\n                  }\n                ]\n              }\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"\\\"\"\n        }\n      ]\n    },\n    \"include_directive\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"include\"\n        },\n        {\n          \"type\": \"ALIAS\",\n          \"content\": {\n            \"type\": \"PATTERN\",\n            \"value\": \"[^ \\\\r\\\\n]+\"\n          },\n          \"named\": true,\n          \"value\": \"include_path\"\n        }\n      ]\n    },\n    \"require_directive\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"require\"\n        },\n        {\n          \"type\": \"ALIAS\",\n          \"content\": {\n            \"type\": \"PATTERN\",\n            \"value\": \"[^ \\\\r\\\\n]+\"\n          },\n          \"named\": true,\n          \"value\": \"include_path\"\n        }\n      ]\n    },\n    \"export_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"export\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"identifier\"\n            },\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"variable_assignment\"\n            }\n          ]\n        }\n      ]\n    },\n    \"overrides_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"OVERRIDES\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"=\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"\\\"\"\n        },\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"identifier\"\n            },\n            {\n              \"type\": \"REPEAT\",\n              \"content\": {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \":\"\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"identifier\"\n                  }\n                ]\n              }\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"\\\"\"\n        }\n      ]\n    },\n    \"export_functions_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"EXPORT_FUNCTIONS\"\n        },\n        {\n          \"type\": \"REPEAT1\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"identifier\"\n          }\n        }\n      ]\n    },\n    \"addtask_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"addtask\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"identifier\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"CHOICE\",\n              \"members\": [\n                {\n                  \"type\": \"SEQ\",\n                  \"members\": [\n                    {\n                      \"type\": \"STRING\",\n                      \"value\": \"after\"\n                    },\n                    {\n                      \"type\": \"REPEAT1\",\n                      \"content\": {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"identifier\"\n                      }\n                    },\n                    {\n                      \"type\": \"CHOICE\",\n                      \"members\": [\n                        {\n                          \"type\": \"SEQ\",\n                          \"members\": [\n                            {\n                              \"type\": \"STRING\",\n                              \"value\": \"before\"\n                            },\n                            {\n                              \"type\": \"REPEAT1\",\n                              \"content\": {\n                                \"type\": \"SYMBOL\",\n                                \"name\": \"identifier\"\n                              }\n                            }\n                          ]\n                        },\n                        {\n                          \"type\": \"BLANK\"\n                        }\n                      ]\n                    }\n                  ]\n                },\n                {\n                  \"type\": \"SEQ\",\n                  \"members\": [\n                    {\n                      \"type\": \"STRING\",\n                      \"value\": \"before\"\n                    },\n                    {\n                      \"type\": \"REPEAT1\",\n                      \"content\": {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"identifier\"\n                      }\n                    },\n                    {\n                      \"type\": \"CHOICE\",\n                      \"members\": [\n                        {\n                          \"type\": \"SEQ\",\n                          \"members\": [\n                            {\n                              \"type\": \"STRING\",\n                              \"value\": \"after\"\n                            },\n                            {\n                              \"type\": \"REPEAT1\",\n                              \"content\": {\n                                \"type\": \"SYMBOL\",\n                                \"name\": \"identifier\"\n                              }\n                            }\n                          ]\n                        },\n                        {\n                          \"type\": \"BLANK\"\n                        }\n                      ]\n                    }\n                  ]\n                }\n              ]\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        }\n      ]\n    },\n    \"deltask_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"deltask\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"identifier\"\n        }\n      ]\n    },\n    \"addhandler_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"addhandler\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"identifier\"\n        }\n      ]\n    },\n    \"anonymous_python_function\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \"fakeroot\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"python\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"identifier\"\n                },\n                {\n                  \"type\": \"CHOICE\",\n                  \"members\": [\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"override\"\n                    },\n                    {\n                      \"type\": \"BLANK\"\n                    }\n                  ]\n                }\n              ]\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"(\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \")\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"{\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_suite\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"}\"\n        }\n      ]\n    },\n    \"function_definition\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \"fakeroot\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"identifier\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"override\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"(\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \")\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"{\"\n        },\n        {\n          \"type\": \"REPEAT\",\n          \"content\": {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"shell_content\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"inline_python\"\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"}\"\n        }\n      ]\n    },\n    \"literal\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"string\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"identifier\"\n        }\n      ]\n    },\n    \"string\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \"\\\"\"\n            },\n            {\n              \"type\": \"REPEAT\",\n              \"content\": {\n                \"type\": \"CHOICE\",\n                \"members\": [\n                  {\n                    \"type\": \"ALIAS\",\n                    \"content\": {\n                      \"type\": \"IMMEDIATE_TOKEN\",\n                      \"content\": {\n                        \"type\": \"PREC\",\n                        \"value\": 1,\n                        \"content\": {\n                          \"type\": \"PATTERN\",\n                          \"value\": \"([^\\\"$\\\\\\\\]|\\\\\\\\.?|\\\\\\\\?\\\\r?\\\\n)+\"\n                        }\n                      }\n                    },\n                    \"named\": true,\n                    \"value\": \"string_content\"\n                  },\n                  {\n                    \"type\": \"PATTERN\",\n                    \"value\": \"\\\"[^\\\"$\\\\\\\\\\\\s]+\\\"\"\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"variable_expansion\"\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"inline_python\"\n                  },\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \"$BB_ENV_PASSTHROUGH\"\n                  },\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \"$BB_ENV_PASSTHROUGH_ADDITIONS\"\n                  },\n                  {\n                    \"type\": \"ALIAS\",\n                    \"content\": {\n                      \"type\": \"TOKEN\",\n                      \"content\": {\n                        \"type\": \"PREC\",\n                        \"value\": -1,\n                        \"content\": {\n                          \"type\": \"STRING\",\n                          \"value\": \"$\"\n                        }\n                      }\n                    },\n                    \"named\": true,\n                    \"value\": \"string_content\"\n                  }\n                ]\n              }\n            },\n            {\n              \"type\": \"STRING\",\n              \"value\": \"\\\"\"\n            }\n          ]\n        },\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \"\'\"\n            },\n            {\n              \"type\": \"REPEAT\",\n              \"content\": {\n                \"type\": \"CHOICE\",\n                \"members\": [\n                  {\n                    \"type\": \"ALIAS\",\n                    \"content\": {\n                      \"type\": \"IMMEDIATE_TOKEN\",\n                      \"content\": {\n                        \"type\": \"PREC\",\n                        \"value\": 1,\n                        \"content\": {\n                          \"type\": \"PATTERN\",\n                          \"value\": \"([^\'$\\\\\\\\]|\\\\\\\\?\\\\r?\\\\n)+\"\n                        }\n                      }\n                    },\n                    \"named\": true,\n                    \"value\": \"string_content\"\n                  },\n                  {\n                    \"type\": \"TOKEN\",\n                    \"content\": {\n                      \"type\": \"PREC\",\n                      \"value\": -1,\n                      \"content\": {\n                        \"type\": \"PATTERN\",\n                        \"value\": \"\\\"[^\\\"$\\\\\\\\\\\\s]+\\\"\"\n                      }\n                    }\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"variable_expansion\"\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"inline_python\"\n                  },\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \"$BB_ENV_PASSTHROUGH\"\n                  },\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \"$BB_ENV_PASSTHROUGH_ADDITIONS\"\n                  }\n                ]\n              }\n            },\n            {\n              \"type\": \"STRING\",\n              \"value\": \"\'\"\n            }\n          ]\n        }\n      ]\n    },\n    \"inline_python\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"${@\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"}\"\n        }\n      ]\n    },\n    \"variable_expansion\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"${\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"identifier\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"}\"\n        }\n      ]\n    },\n    \"python_function_definition\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"def\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"name\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"python_identifier\"\n          }\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"parameters\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"parameters\"\n          }\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"->\"\n                },\n                {\n                  \"type\": \"FIELD\",\n                  \"name\": \"return_type\",\n                  \"content\": {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"type\"\n                  }\n                }\n              ]\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"body\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_suite\"\n          }\n        }\n      ]\n    },\n    \"_statement\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_simple_statements\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_compound_statement\"\n        }\n      ]\n    },\n    \"_simple_statements\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"_simple_statement\"\n            },\n            {\n              \"type\": \"REPEAT\",\n              \"content\": {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \";\"\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"_simple_statement\"\n                  }\n                ]\n              }\n            }\n          ]\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \";\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_newline\"\n        }\n      ]\n    },\n    \"_simple_statement\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"future_import_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"import_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"import_from_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"print_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"assert_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"return_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"delete_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"raise_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"pass_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"break_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"continue_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"global_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"nonlocal_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"exec_statement\"\n        }\n      ]\n    },\n    \"import_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"import\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_import_list\"\n        }\n      ]\n    },\n    \"import_prefix\": {\n      \"type\": \"REPEAT1\",\n      \"content\": {\n        \"type\": \"STRING\",\n        \"value\": \".\"\n      }\n    },\n    \"relative_import\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"import_prefix\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"dotted_name\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        }\n      ]\n    },\n    \"future_import_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"from\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"__future__\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"import\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"_import_list\"\n            },\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"(\"\n                },\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"_import_list\"\n                },\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \")\"\n                }\n              ]\n            }\n          ]\n        }\n      ]\n    },\n    \"import_from_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"from\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"module_name\",\n          \"content\": {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"relative_import\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"dotted_name\"\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"import\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"wildcard_import\"\n            },\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"_import_list\"\n            },\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"(\"\n                },\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"_import_list\"\n                },\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \")\"\n                }\n              ]\n            }\n          ]\n        }\n      ]\n    },\n    \"_import_list\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"FIELD\",\n              \"name\": \"name\",\n              \"content\": {\n                \"type\": \"CHOICE\",\n                \"members\": [\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"dotted_name\"\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"aliased_import\"\n                  }\n                ]\n              }\n            },\n            {\n              \"type\": \"REPEAT\",\n              \"content\": {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \",\"\n                  },\n                  {\n                    \"type\": \"FIELD\",\n                    \"name\": \"name\",\n                    \"content\": {\n                      \"type\": \"CHOICE\",\n                      \"members\": [\n                        {\n                          \"type\": \"SYMBOL\",\n                          \"name\": \"dotted_name\"\n                        },\n                        {\n                          \"type\": \"SYMBOL\",\n                          \"name\": \"aliased_import\"\n                        }\n                      ]\n                    }\n                  }\n                ]\n              }\n            }\n          ]\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \",\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        }\n      ]\n    },\n    \"aliased_import\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"name\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"dotted_name\"\n          }\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"as\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"alias\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"python_identifier\"\n          }\n        }\n      ]\n    },\n    \"wildcard_import\": {\n      \"type\": \"STRING\",\n      \"value\": \"*\"\n    },\n    \"print_statement\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"PREC\",\n          \"value\": 1,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"STRING\",\n                \"value\": \"print\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"chevron\"\n              },\n              {\n                \"type\": \"REPEAT\",\n                \"content\": {\n                  \"type\": \"SEQ\",\n                  \"members\": [\n                    {\n                      \"type\": \"STRING\",\n                      \"value\": \",\"\n                    },\n                    {\n                      \"type\": \"FIELD\",\n                      \"name\": \"argument\",\n                      \"content\": {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"expression\"\n                      }\n                    }\n                  ]\n                }\n              },\n              {\n                \"type\": \"CHOICE\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \",\"\n                  },\n                  {\n                    \"type\": \"BLANK\"\n                  }\n                ]\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"PREC\",\n          \"value\": -3,\n          \"content\": {\n            \"type\": \"PREC_DYNAMIC\",\n            \"value\": -1,\n            \"content\": {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"print\"\n                },\n                {\n                  \"type\": \"SEQ\",\n                  \"members\": [\n                    {\n                      \"type\": \"FIELD\",\n                      \"name\": \"argument\",\n                      \"content\": {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"expression\"\n                      }\n                    },\n                    {\n                      \"type\": \"REPEAT\",\n                      \"content\": {\n                        \"type\": \"SEQ\",\n                        \"members\": [\n                          {\n                            \"type\": \"STRING\",\n                            \"value\": \",\"\n                          },\n                          {\n                            \"type\": \"FIELD\",\n                            \"name\": \"argument\",\n                            \"content\": {\n                              \"type\": \"SYMBOL\",\n                              \"name\": \"expression\"\n                            }\n                          }\n                        ]\n                      }\n                    }\n                  ]\n                },\n                {\n                  \"type\": \"CHOICE\",\n                  \"members\": [\n                    {\n                      \"type\": \"STRING\",\n                      \"value\": \",\"\n                    },\n                    {\n                      \"type\": \"BLANK\"\n                    }\n                  ]\n                }\n              ]\n            }\n          }\n        }\n      ]\n    },\n    \"chevron\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \">>\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression\"\n        }\n      ]\n    },\n    \"assert_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"assert\"\n        },\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"expression\"\n            },\n            {\n              \"type\": \"REPEAT\",\n              \"content\": {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \",\"\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"expression\"\n                  }\n                ]\n              }\n            }\n          ]\n        }\n      ]\n    },\n    \"expression_statement\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression\"\n        },\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"expression\"\n                },\n                {\n                  \"type\": \"REPEAT\",\n                  \"content\": {\n                    \"type\": \"SEQ\",\n                    \"members\": [\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \",\"\n                      },\n                      {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"expression\"\n                      }\n                    ]\n                  }\n                }\n              ]\n            },\n            {\n              \"type\": \"CHOICE\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \",\"\n                },\n                {\n                  \"type\": \"BLANK\"\n                }\n              ]\n            }\n          ]\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"assignment\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"augmented_assignment\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"yield\"\n        }\n      ]\n    },\n    \"named_expression\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"name\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_named_expression_lhs\"\n          }\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":=\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"value\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          }\n        }\n      ]\n    },\n    \"_named_expression_lhs\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"python_identifier\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"keyword_identifier\"\n        }\n      ]\n    },\n    \"return_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"return\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"_expressions\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        }\n      ]\n    },\n    \"delete_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"del\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_expressions\"\n        }\n      ]\n    },\n    \"_expressions\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression_list\"\n        }\n      ]\n    },\n    \"raise_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"raise\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"_expressions\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"from\"\n                },\n                {\n                  \"type\": \"FIELD\",\n                  \"name\": \"cause\",\n                  \"content\": {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"expression\"\n                  }\n                }\n              ]\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        }\n      ]\n    },\n    \"pass_statement\": {\n      \"type\": \"PREC_LEFT\",\n      \"value\": 0,\n      \"content\": {\n        \"type\": \"STRING\",\n        \"value\": \"pass\"\n      }\n    },\n    \"break_statement\": {\n      \"type\": \"PREC_LEFT\",\n      \"value\": 0,\n      \"content\": {\n        \"type\": \"STRING\",\n        \"value\": \"break\"\n      }\n    },\n    \"continue_statement\": {\n      \"type\": \"PREC_LEFT\",\n      \"value\": 0,\n      \"content\": {\n        \"type\": \"STRING\",\n        \"value\": \"continue\"\n      }\n    },\n    \"global_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"global\"\n        },\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"python_identifier\"\n            },\n            {\n              \"type\": \"REPEAT\",\n              \"content\": {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \",\"\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"python_identifier\"\n                  }\n                ]\n              }\n            }\n          ]\n        }\n      ]\n    },\n    \"nonlocal_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"nonlocal\"\n        },\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"python_identifier\"\n            },\n            {\n              \"type\": \"REPEAT\",\n              \"content\": {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \",\"\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"python_identifier\"\n                  }\n                ]\n              }\n            }\n          ]\n        }\n      ]\n    },\n    \"exec_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"exec\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"code\",\n          \"content\": {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"python_string\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"python_identifier\"\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"in\"\n                },\n                {\n                  \"type\": \"SEQ\",\n                  \"members\": [\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"expression\"\n                    },\n                    {\n                      \"type\": \"REPEAT\",\n                      \"content\": {\n                        \"type\": \"SEQ\",\n                        \"members\": [\n                          {\n                            \"type\": \"STRING\",\n                            \"value\": \",\"\n                          },\n                          {\n                            \"type\": \"SYMBOL\",\n                            \"name\": \"expression\"\n                          }\n                        ]\n                      }\n                    }\n                  ]\n                }\n              ]\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        }\n      ]\n    },\n    \"type_parameter\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"[\"\n        },\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"type\"\n            },\n            {\n              \"type\": \"REPEAT\",\n              \"content\": {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \",\"\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"type\"\n                  }\n                ]\n              }\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"]\"\n        }\n      ]\n    },\n    \"parenthesized_list_splat\": {\n      \"type\": \"PREC\",\n      \"value\": 1,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"STRING\",\n            \"value\": \"(\"\n          },\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"ALIAS\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"parenthesized_list_splat\"\n                },\n                \"named\": true,\n                \"value\": \"parenthesized_expression\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"list_splat\"\n              }\n            ]\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \")\"\n          }\n        ]\n      }\n    },\n    \"argument_list\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"(\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"CHOICE\",\n                  \"members\": [\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"expression\"\n                    },\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"list_splat\"\n                    },\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"dictionary_splat\"\n                    },\n                    {\n                      \"type\": \"ALIAS\",\n                      \"content\": {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"parenthesized_list_splat\"\n                      },\n                      \"named\": true,\n                      \"value\": \"parenthesized_expression\"\n                    },\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"keyword_argument\"\n                    }\n                  ]\n                },\n                {\n                  \"type\": \"REPEAT\",\n                  \"content\": {\n                    \"type\": \"SEQ\",\n                    \"members\": [\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \",\"\n                      },\n                      {\n                        \"type\": \"CHOICE\",\n                        \"members\": [\n                          {\n                            \"type\": \"SYMBOL\",\n                            \"name\": \"expression\"\n                          },\n                          {\n                            \"type\": \"SYMBOL\",\n                            \"name\": \"list_splat\"\n                          },\n                          {\n                            \"type\": \"SYMBOL\",\n                            \"name\": \"dictionary_splat\"\n                          },\n                          {\n                            \"type\": \"ALIAS\",\n                            \"content\": {\n                              \"type\": \"SYMBOL\",\n                              \"name\": \"parenthesized_list_splat\"\n                            },\n                            \"named\": true,\n                            \"value\": \"parenthesized_expression\"\n                          },\n                          {\n                            \"type\": \"SYMBOL\",\n                            \"name\": \"keyword_argument\"\n                          }\n                        ]\n                      }\n                    ]\n                  }\n                }\n              ]\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \",\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \")\"\n        }\n      ]\n    },\n    \"_compound_statement\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"if_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"for_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"while_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"try_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"with_statement\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"python_function_definition\"\n        }\n      ]\n    },\n    \"if_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"if\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"condition\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          }\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"consequence\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_suite\"\n          }\n        },\n        {\n          \"type\": \"REPEAT\",\n          \"content\": {\n            \"type\": \"FIELD\",\n            \"name\": \"alternative\",\n            \"content\": {\n              \"type\": \"SYMBOL\",\n              \"name\": \"elif_clause\"\n            }\n          }\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"FIELD\",\n              \"name\": \"alternative\",\n              \"content\": {\n                \"type\": \"SYMBOL\",\n                \"name\": \"else_clause\"\n              }\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        }\n      ]\n    },\n    \"elif_clause\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"elif\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"condition\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          }\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"consequence\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_suite\"\n          }\n        }\n      ]\n    },\n    \"else_clause\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"else\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"body\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_suite\"\n          }\n        }\n      ]\n    },\n    \"for_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \"async\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"for\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"left\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_left_hand_side\"\n          }\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"in\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"right\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_expressions\"\n          }\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"body\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_suite\"\n          }\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"alternative\",\n          \"content\": {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"else_clause\"\n              },\n              {\n                \"type\": \"BLANK\"\n              }\n            ]\n          }\n        }\n      ]\n    },\n    \"while_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"while\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"condition\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          }\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"body\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_suite\"\n          }\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"FIELD\",\n              \"name\": \"alternative\",\n              \"content\": {\n                \"type\": \"SYMBOL\",\n                \"name\": \"else_clause\"\n              }\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        }\n      ]\n    },\n    \"try_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"try\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"body\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_suite\"\n          }\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"REPEAT1\",\n                  \"content\": {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"except_clause\"\n                  }\n                },\n                {\n                  \"type\": \"CHOICE\",\n                  \"members\": [\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"else_clause\"\n                    },\n                    {\n                      \"type\": \"BLANK\"\n                    }\n                  ]\n                },\n                {\n                  \"type\": \"CHOICE\",\n                  \"members\": [\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"finally_clause\"\n                    },\n                    {\n                      \"type\": \"BLANK\"\n                    }\n                  ]\n                }\n              ]\n            },\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"REPEAT1\",\n                  \"content\": {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"except_group_clause\"\n                  }\n                },\n                {\n                  \"type\": \"CHOICE\",\n                  \"members\": [\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"else_clause\"\n                    },\n                    {\n                      \"type\": \"BLANK\"\n                    }\n                  ]\n                },\n                {\n                  \"type\": \"CHOICE\",\n                  \"members\": [\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"finally_clause\"\n                    },\n                    {\n                      \"type\": \"BLANK\"\n                    }\n                  ]\n                }\n              ]\n            },\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"finally_clause\"\n            }\n          ]\n        }\n      ]\n    },\n    \"except_clause\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"except\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"expression\"\n                },\n                {\n                  \"type\": \"CHOICE\",\n                  \"members\": [\n                    {\n                      \"type\": \"SEQ\",\n                      \"members\": [\n                        {\n                          \"type\": \"CHOICE\",\n                          \"members\": [\n                            {\n                              \"type\": \"STRING\",\n                              \"value\": \"as\"\n                            },\n                            {\n                              \"type\": \"STRING\",\n                              \"value\": \",\"\n                            }\n                          ]\n                        },\n                        {\n                          \"type\": \"SYMBOL\",\n                          \"name\": \"expression\"\n                        }\n                      ]\n                    },\n                    {\n                      \"type\": \"BLANK\"\n                    }\n                  ]\n                }\n              ]\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_suite\"\n        }\n      ]\n    },\n    \"except_group_clause\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"except*\"\n        },\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"expression\"\n            },\n            {\n              \"type\": \"CHOICE\",\n              \"members\": [\n                {\n                  \"type\": \"SEQ\",\n                  \"members\": [\n                    {\n                      \"type\": \"STRING\",\n                      \"value\": \"as\"\n                    },\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"expression\"\n                    }\n                  ]\n                },\n                {\n                  \"type\": \"BLANK\"\n                }\n              ]\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_suite\"\n        }\n      ]\n    },\n    \"finally_clause\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"finally\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_suite\"\n        }\n      ]\n    },\n    \"with_statement\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \"async\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"with\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"with_clause\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"body\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_suite\"\n          }\n        }\n      ]\n    },\n    \"with_clause\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"with_item\"\n                },\n                {\n                  \"type\": \"REPEAT\",\n                  \"content\": {\n                    \"type\": \"SEQ\",\n                    \"members\": [\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \",\"\n                      },\n                      {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"with_item\"\n                      }\n                    ]\n                  }\n                }\n              ]\n            },\n            {\n              \"type\": \"CHOICE\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \",\"\n                },\n                {\n                  \"type\": \"BLANK\"\n                }\n              ]\n            }\n          ]\n        },\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \"(\"\n            },\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"with_item\"\n                },\n                {\n                  \"type\": \"REPEAT\",\n                  \"content\": {\n                    \"type\": \"SEQ\",\n                    \"members\": [\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \",\"\n                      },\n                      {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"with_item\"\n                      }\n                    ]\n                  }\n                }\n              ]\n            },\n            {\n              \"type\": \"CHOICE\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \",\"\n                },\n                {\n                  \"type\": \"BLANK\"\n                }\n              ]\n            },\n            {\n              \"type\": \"STRING\",\n              \"value\": \")\"\n            }\n          ]\n        }\n      ]\n    },\n    \"with_item\": {\n      \"type\": \"PREC_DYNAMIC\",\n      \"value\": 1,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"value\",\n            \"content\": {\n              \"type\": \"SYMBOL\",\n              \"name\": \"expression\"\n            }\n          }\n        ]\n      }\n    },\n    \"dotted_name\": {\n      \"type\": \"PREC\",\n      \"value\": 1,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"python_identifier\"\n          },\n          {\n            \"type\": \"REPEAT\",\n            \"content\": {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \".\"\n                },\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"python_identifier\"\n                }\n              ]\n            }\n          }\n        ]\n      }\n    },\n    \"not_operator\": {\n      \"type\": \"PREC\",\n      \"value\": 12,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"STRING\",\n            \"value\": \"not\"\n          },\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"argument\",\n            \"content\": {\n              \"type\": \"SYMBOL\",\n              \"name\": \"expression\"\n            }\n          }\n        ]\n      }\n    },\n    \"boolean_operator\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"PREC_LEFT\",\n          \"value\": 11,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \"and\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"expression\"\n                }\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"PREC_LEFT\",\n          \"value\": 10,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \"or\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"expression\"\n                }\n              }\n            ]\n          }\n        }\n      ]\n    },\n    \"binary_operator\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"PREC_LEFT\",\n          \"value\": 18,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \"+\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"PREC_LEFT\",\n          \"value\": 18,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \"-\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"PREC_LEFT\",\n          \"value\": 19,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \"*\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"PREC_LEFT\",\n          \"value\": 19,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \"@\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"PREC_LEFT\",\n          \"value\": 19,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \"/\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"PREC_LEFT\",\n          \"value\": 19,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \"%\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"PREC_LEFT\",\n          \"value\": 19,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \"//\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"PREC_RIGHT\",\n          \"value\": 21,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \"**\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"PREC_LEFT\",\n          \"value\": 14,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \"|\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"PREC_LEFT\",\n          \"value\": 15,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \"&\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"PREC_LEFT\",\n          \"value\": 16,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \"^\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"PREC_LEFT\",\n          \"value\": 17,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \"<<\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"PREC_LEFT\",\n          \"value\": 17,\n          \"content\": {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"left\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"operator\",\n                \"content\": {\n                  \"type\": \"STRING\",\n                  \"value\": \">>\"\n                }\n              },\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"right\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              }\n            ]\n          }\n        }\n      ]\n    },\n    \"unary_operator\": {\n      \"type\": \"PREC\",\n      \"value\": 20,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"operator\",\n            \"content\": {\n              \"type\": \"CHOICE\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"+\"\n                },\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"-\"\n                },\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"~\"\n                }\n              ]\n            }\n          },\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"argument\",\n            \"content\": {\n              \"type\": \"SYMBOL\",\n              \"name\": \"primary_expression\"\n            }\n          }\n        ]\n      }\n    },\n    \"comparison_operator\": {\n      \"type\": \"PREC_LEFT\",\n      \"value\": 13,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"primary_expression\"\n          },\n          {\n            \"type\": \"REPEAT1\",\n            \"content\": {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"FIELD\",\n                  \"name\": \"operators\",\n                  \"content\": {\n                    \"type\": \"CHOICE\",\n                    \"members\": [\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \"<\"\n                      },\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \"<=\"\n                      },\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \"==\"\n                      },\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \"!=\"\n                      },\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \">=\"\n                      },\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \">\"\n                      },\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \"<>\"\n                      },\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \"in\"\n                      },\n                      {\n                        \"type\": \"ALIAS\",\n                        \"content\": {\n                          \"type\": \"SEQ\",\n                          \"members\": [\n                            {\n                              \"type\": \"STRING\",\n                              \"value\": \"not\"\n                            },\n                            {\n                              \"type\": \"STRING\",\n                              \"value\": \"in\"\n                            }\n                          ]\n                        },\n                        \"named\": false,\n                        \"value\": \"not in\"\n                      },\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \"is\"\n                      },\n                      {\n                        \"type\": \"ALIAS\",\n                        \"content\": {\n                          \"type\": \"SEQ\",\n                          \"members\": [\n                            {\n                              \"type\": \"STRING\",\n                              \"value\": \"is\"\n                            },\n                            {\n                              \"type\": \"STRING\",\n                              \"value\": \"not\"\n                            }\n                          ]\n                        },\n                        \"named\": false,\n                        \"value\": \"is not\"\n                      }\n                    ]\n                  }\n                },\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"primary_expression\"\n                }\n              ]\n            }\n          }\n        ]\n      }\n    },\n    \"lambda\": {\n      \"type\": \"PREC\",\n      \"value\": -2,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"STRING\",\n            \"value\": \"lambda\"\n          },\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"parameters\",\n            \"content\": {\n              \"type\": \"CHOICE\",\n              \"members\": [\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"lambda_parameters\"\n                },\n                {\n                  \"type\": \"BLANK\"\n                }\n              ]\n            }\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \":\"\n          },\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"body\",\n            \"content\": {\n              \"type\": \"SYMBOL\",\n              \"name\": \"expression\"\n            }\n          }\n        ]\n      }\n    },\n    \"lambda_within_for_in_clause\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"lambda\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"parameters\",\n          \"content\": {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"lambda_parameters\"\n              },\n              {\n                \"type\": \"BLANK\"\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"body\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_expression_within_for_in_clause\"\n          }\n        }\n      ]\n    },\n    \"assignment\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"left\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_left_hand_side\"\n          }\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"=\"\n                },\n                {\n                  \"type\": \"FIELD\",\n                  \"name\": \"right\",\n                  \"content\": {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"_right_hand_side\"\n                  }\n                }\n              ]\n            },\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \":\"\n                },\n                {\n                  \"type\": \"FIELD\",\n                  \"name\": \"type\",\n                  \"content\": {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"type\"\n                  }\n                }\n              ]\n            },\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \":\"\n                },\n                {\n                  \"type\": \"FIELD\",\n                  \"name\": \"type\",\n                  \"content\": {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"type\"\n                  }\n                },\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"=\"\n                },\n                {\n                  \"type\": \"FIELD\",\n                  \"name\": \"right\",\n                  \"content\": {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"_right_hand_side\"\n                  }\n                }\n              ]\n            }\n          ]\n        }\n      ]\n    },\n    \"augmented_assignment\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"left\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_left_hand_side\"\n          }\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"operator\",\n          \"content\": {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"STRING\",\n                \"value\": \"+=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"-=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"*=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"/=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"@=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"//=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"%=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"**=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \">>=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"<<=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"&=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"^=\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"|=\"\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"right\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_right_hand_side\"\n          }\n        }\n      ]\n    },\n    \"_left_hand_side\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"pattern\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"pattern_list\"\n        }\n      ]\n    },\n    \"pattern_list\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"pattern\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \",\"\n            },\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"REPEAT1\",\n                  \"content\": {\n                    \"type\": \"SEQ\",\n                    \"members\": [\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \",\"\n                      },\n                      {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"pattern\"\n                      }\n                    ]\n                  }\n                },\n                {\n                  \"type\": \"CHOICE\",\n                  \"members\": [\n                    {\n                      \"type\": \"STRING\",\n                      \"value\": \",\"\n                    },\n                    {\n                      \"type\": \"BLANK\"\n                    }\n                  ]\n                }\n              ]\n            }\n          ]\n        }\n      ]\n    },\n    \"_right_hand_side\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression_list\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"assignment\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"augmented_assignment\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"pattern_list\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"yield\"\n        }\n      ]\n    },\n    \"yield\": {\n      \"type\": \"PREC_RIGHT\",\n      \"value\": 0,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"STRING\",\n            \"value\": \"yield\"\n          },\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \"from\"\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"expression\"\n                  }\n                ]\n              },\n              {\n                \"type\": \"CHOICE\",\n                \"members\": [\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"_expressions\"\n                  },\n                  {\n                    \"type\": \"BLANK\"\n                  }\n                ]\n              }\n            ]\n          }\n        ]\n      }\n    },\n    \"attribute\": {\n      \"type\": \"PREC\",\n      \"value\": 22,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"object\",\n            \"content\": {\n              \"type\": \"SYMBOL\",\n              \"name\": \"primary_expression\"\n            }\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \".\"\n          },\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"attribute\",\n            \"content\": {\n              \"type\": \"SYMBOL\",\n              \"name\": \"python_identifier\"\n            }\n          }\n        ]\n      }\n    },\n    \"subscript\": {\n      \"type\": \"PREC\",\n      \"value\": 22,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"value\",\n            \"content\": {\n              \"type\": \"SYMBOL\",\n              \"name\": \"primary_expression\"\n            }\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \"[\"\n          },\n          {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"FIELD\",\n                \"name\": \"subscript\",\n                \"content\": {\n                  \"type\": \"CHOICE\",\n                  \"members\": [\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"expression\"\n                    },\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"slice\"\n                    }\n                  ]\n                }\n              },\n              {\n                \"type\": \"REPEAT\",\n                \"content\": {\n                  \"type\": \"SEQ\",\n                  \"members\": [\n                    {\n                      \"type\": \"STRING\",\n                      \"value\": \",\"\n                    },\n                    {\n                      \"type\": \"FIELD\",\n                      \"name\": \"subscript\",\n                      \"content\": {\n                        \"type\": \"CHOICE\",\n                        \"members\": [\n                          {\n                            \"type\": \"SYMBOL\",\n                            \"name\": \"expression\"\n                          },\n                          {\n                            \"type\": \"SYMBOL\",\n                            \"name\": \"slice\"\n                          }\n                        ]\n                      }\n                    }\n                  ]\n                }\n              }\n            ]\n          },\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"STRING\",\n                \"value\": \",\"\n              },\n              {\n                \"type\": \"BLANK\"\n              }\n            ]\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \"]\"\n          }\n        ]\n      }\n    },\n    \"slice\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"expression\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"expression\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \":\"\n                },\n                {\n                  \"type\": \"CHOICE\",\n                  \"members\": [\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"expression\"\n                    },\n                    {\n                      \"type\": \"BLANK\"\n                    }\n                  ]\n                }\n              ]\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        }\n      ]\n    },\n    \"ellipsis\": {\n      \"type\": \"STRING\",\n      \"value\": \"...\"\n    },\n    \"call\": {\n      \"type\": \"PREC\",\n      \"value\": 22,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"function\",\n            \"content\": {\n              \"type\": \"SYMBOL\",\n              \"name\": \"primary_expression\"\n            }\n          },\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"arguments\",\n            \"content\": {\n              \"type\": \"CHOICE\",\n              \"members\": [\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"generator_expression\"\n                },\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"argument_list\"\n                }\n              ]\n            }\n          }\n        ]\n      }\n    },\n    \"generator_expression\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"(\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"body\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          }\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_comprehension_clauses\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \")\"\n        }\n      ]\n    },\n    \"_comprehension_clauses\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"for_in_clause\"\n        },\n        {\n          \"type\": \"REPEAT\",\n          \"content\": {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"for_in_clause\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"if_clause\"\n              }\n            ]\n          }\n        }\n      ]\n    },\n    \"parenthesized_expression\": {\n      \"type\": \"PREC\",\n      \"value\": 1,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"STRING\",\n            \"value\": \"(\"\n          },\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"expression\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"yield\"\n              }\n            ]\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \")\"\n          }\n        ]\n      }\n    },\n    \"_collection_elements\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"CHOICE\",\n              \"members\": [\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"expression\"\n                },\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"yield\"\n                },\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"list_splat\"\n                },\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"parenthesized_list_splat\"\n                }\n              ]\n            },\n            {\n              \"type\": \"REPEAT\",\n              \"content\": {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \",\"\n                  },\n                  {\n                    \"type\": \"CHOICE\",\n                    \"members\": [\n                      {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"expression\"\n                      },\n                      {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"yield\"\n                      },\n                      {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"list_splat\"\n                      },\n                      {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"parenthesized_list_splat\"\n                      }\n                    ]\n                  }\n                ]\n              }\n            }\n          ]\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \",\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        }\n      ]\n    },\n    \"for_in_clause\": {\n      \"type\": \"PREC_LEFT\",\n      \"value\": 0,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"STRING\",\n                \"value\": \"async\"\n              },\n              {\n                \"type\": \"BLANK\"\n              }\n            ]\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \"for\"\n          },\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"left\",\n            \"content\": {\n              \"type\": \"SYMBOL\",\n              \"name\": \"_left_hand_side\"\n            }\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \"in\"\n          },\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"right\",\n            \"content\": {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"_expression_within_for_in_clause\"\n                },\n                {\n                  \"type\": \"REPEAT\",\n                  \"content\": {\n                    \"type\": \"SEQ\",\n                    \"members\": [\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \",\"\n                      },\n                      {\n                        \"type\": \"SYMBOL\",\n                        \"name\": \"_expression_within_for_in_clause\"\n                      }\n                    ]\n                  }\n                }\n              ]\n            }\n          },\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"STRING\",\n                \"value\": \",\"\n              },\n              {\n                \"type\": \"BLANK\"\n              }\n            ]\n          }\n        ]\n      }\n    },\n    \"if_clause\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"if\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression\"\n        }\n      ]\n    },\n    \"_suite\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"ALIAS\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_simple_statements\"\n          },\n          \"named\": true,\n          \"value\": \"block\"\n        },\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"_indent\"\n            },\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"block\"\n            }\n          ]\n        },\n        {\n          \"type\": \"ALIAS\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_newline\"\n          },\n          \"named\": true,\n          \"value\": \"block\"\n        }\n      ]\n    },\n    \"block\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"REPEAT\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_statement\"\n          }\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_dedent\"\n        }\n      ]\n    },\n    \"expression_list\": {\n      \"type\": \"PREC_RIGHT\",\n      \"value\": 0,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          },\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"STRING\",\n                \"value\": \",\"\n              },\n              {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"REPEAT1\",\n                    \"content\": {\n                      \"type\": \"SEQ\",\n                      \"members\": [\n                        {\n                          \"type\": \"STRING\",\n                          \"value\": \",\"\n                        },\n                        {\n                          \"type\": \"SYMBOL\",\n                          \"name\": \"expression\"\n                        }\n                      ]\n                    }\n                  },\n                  {\n                    \"type\": \"CHOICE\",\n                    \"members\": [\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \",\"\n                      },\n                      {\n                        \"type\": \"BLANK\"\n                      }\n                    ]\n                  }\n                ]\n              }\n            ]\n          }\n        ]\n      }\n    },\n    \"parameters\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"(\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"_parameters\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \")\"\n        }\n      ]\n    },\n    \"lambda_parameters\": {\n      \"type\": \"SYMBOL\",\n      \"name\": \"_parameters\"\n    },\n    \"list_splat\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"*\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression\"\n        }\n      ]\n    },\n    \"dictionary_splat\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"**\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression\"\n        }\n      ]\n    },\n    \"_parameters\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"parameter\"\n            },\n            {\n              \"type\": \"REPEAT\",\n              \"content\": {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \",\"\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"parameter\"\n                  }\n                ]\n              }\n            }\n          ]\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \",\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        }\n      ]\n    },\n    \"_patterns\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"pattern\"\n            },\n            {\n              \"type\": \"REPEAT\",\n              \"content\": {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \",\"\n                  },\n                  {\n                    \"type\": \"SYMBOL\",\n                    \"name\": \"pattern\"\n                  }\n                ]\n              }\n            }\n          ]\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \",\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        }\n      ]\n    },\n    \"parameter\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"python_identifier\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"typed_parameter\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"default_parameter\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"typed_default_parameter\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"list_splat_pattern\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"tuple_pattern\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"keyword_separator\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"positional_separator\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"dictionary_splat_pattern\"\n        }\n      ]\n    },\n    \"pattern\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"python_identifier\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"keyword_identifier\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"subscript\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"attribute\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"list_splat_pattern\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"tuple_pattern\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"list_pattern\"\n        }\n      ]\n    },\n    \"tuple_pattern\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"(\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"_patterns\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \")\"\n        }\n      ]\n    },\n    \"list_pattern\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"[\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"_patterns\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"]\"\n        }\n      ]\n    },\n    \"default_parameter\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"name\",\n          \"content\": {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"python_identifier\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"tuple_pattern\"\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"=\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"value\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          }\n        }\n      ]\n    },\n    \"typed_default_parameter\": {\n      \"type\": \"PREC\",\n      \"value\": -1,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"name\",\n            \"content\": {\n              \"type\": \"SYMBOL\",\n              \"name\": \"python_identifier\"\n            }\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \":\"\n          },\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"type\",\n            \"content\": {\n              \"type\": \"SYMBOL\",\n              \"name\": \"type\"\n            }\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \"=\"\n          },\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"value\",\n            \"content\": {\n              \"type\": \"SYMBOL\",\n              \"name\": \"expression\"\n            }\n          }\n        ]\n      }\n    },\n    \"list_splat_pattern\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"*\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"python_identifier\"\n            },\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"keyword_identifier\"\n            },\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"subscript\"\n            },\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"attribute\"\n            }\n          ]\n        }\n      ]\n    },\n    \"dictionary_splat_pattern\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"**\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"python_identifier\"\n            },\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"keyword_identifier\"\n            },\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"subscript\"\n            },\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"attribute\"\n            }\n          ]\n        }\n      ]\n    },\n    \"as_pattern\": {\n      \"type\": \"PREC_LEFT\",\n      \"value\": 0,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \"as\"\n          },\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"alias\",\n            \"content\": {\n              \"type\": \"ALIAS\",\n              \"content\": {\n                \"type\": \"SYMBOL\",\n                \"name\": \"expression\"\n              },\n              \"named\": true,\n              \"value\": \"as_pattern_target\"\n            }\n          }\n        ]\n      }\n    },\n    \"_expression_within_for_in_clause\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression\"\n        },\n        {\n          \"type\": \"ALIAS\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"lambda_within_for_in_clause\"\n          },\n          \"named\": true,\n          \"value\": \"lambda\"\n        }\n      ]\n    },\n    \"expression\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"comparison_operator\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"not_operator\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"boolean_operator\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"lambda\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"primary_expression\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"conditional_expression\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"named_expression\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"as_pattern\"\n        }\n      ]\n    },\n    \"primary_expression\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"await\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"binary_operator\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"python_identifier\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"keyword_identifier\"\n        },\n        {\n          \"type\": \"ALIAS\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"identifier\"\n          },\n          \"named\": true,\n          \"value\": \"python_identifier\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"python_string\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"concatenated_string\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"integer\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"float\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"true\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"false\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"none\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"unary_operator\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"attribute\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"subscript\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"call\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"list\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"list_comprehension\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"dictionary\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"dictionary_comprehension\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"set\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"set_comprehension\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"tuple\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"parenthesized_expression\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"generator_expression\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"ellipsis\"\n        },\n        {\n          \"type\": \"ALIAS\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"list_splat_pattern\"\n          },\n          \"named\": true,\n          \"value\": \"list_splat\"\n        }\n      ]\n    },\n    \"typed_parameter\": {\n      \"type\": \"PREC\",\n      \"value\": -1,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"python_identifier\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"list_splat_pattern\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"dictionary_splat_pattern\"\n              }\n            ]\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \":\"\n          },\n          {\n            \"type\": \"FIELD\",\n            \"name\": \"type\",\n            \"content\": {\n              \"type\": \"SYMBOL\",\n              \"name\": \"type\"\n            }\n          }\n        ]\n      }\n    },\n    \"type\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"splat_type\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"generic_type\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"union_type\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"constrained_type\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"member_type\"\n        }\n      ]\n    },\n    \"splat_type\": {\n      \"type\": \"PREC\",\n      \"value\": 1,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"STRING\",\n                \"value\": \"*\"\n              },\n              {\n                \"type\": \"STRING\",\n                \"value\": \"**\"\n              }\n            ]\n          },\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"python_identifier\"\n          }\n        ]\n      }\n    },\n    \"generic_type\": {\n      \"type\": \"PREC\",\n      \"value\": 1,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"python_identifier\"\n          },\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"type_parameter\"\n          }\n        ]\n      }\n    },\n    \"union_type\": {\n      \"type\": \"PREC_LEFT\",\n      \"value\": 0,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"type\"\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \"|\"\n          },\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"type\"\n          }\n        ]\n      }\n    },\n    \"constrained_type\": {\n      \"type\": \"PREC_RIGHT\",\n      \"value\": 0,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"type\"\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \":\"\n          },\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"type\"\n          }\n        ]\n      }\n    },\n    \"member_type\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"type\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \".\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"python_identifier\"\n        }\n      ]\n    },\n    \"keyword_argument\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"name\",\n          \"content\": {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"python_identifier\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"keyword_identifier\"\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"=\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"value\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          }\n        }\n      ]\n    },\n    \"list\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"[\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"_collection_elements\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"]\"\n        }\n      ]\n    },\n    \"set\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"{\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_collection_elements\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"}\"\n        }\n      ]\n    },\n    \"tuple\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"(\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"_collection_elements\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \")\"\n        }\n      ]\n    },\n    \"dictionary\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"{\"\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"CHOICE\",\n                  \"members\": [\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"pair\"\n                    },\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"dictionary_splat\"\n                    }\n                  ]\n                },\n                {\n                  \"type\": \"REPEAT\",\n                  \"content\": {\n                    \"type\": \"SEQ\",\n                    \"members\": [\n                      {\n                        \"type\": \"STRING\",\n                        \"value\": \",\"\n                      },\n                      {\n                        \"type\": \"CHOICE\",\n                        \"members\": [\n                          {\n                            \"type\": \"SYMBOL\",\n                            \"name\": \"pair\"\n                          },\n                          {\n                            \"type\": \"SYMBOL\",\n                            \"name\": \"dictionary_splat\"\n                          }\n                        ]\n                      }\n                    ]\n                  }\n                }\n              ]\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \",\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"}\"\n        }\n      ]\n    },\n    \"pair\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"key\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          }\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"value\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          }\n        }\n      ]\n    },\n    \"list_comprehension\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"[\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"body\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          }\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_comprehension_clauses\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"]\"\n        }\n      ]\n    },\n    \"dictionary_comprehension\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"{\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"body\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"pair\"\n          }\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_comprehension_clauses\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"}\"\n        }\n      ]\n    },\n    \"set_comprehension\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"{\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"body\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          }\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"_comprehension_clauses\"\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"}\"\n        }\n      ]\n    },\n    \"conditional_expression\": {\n      \"type\": \"PREC_RIGHT\",\n      \"value\": -1,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \"if\"\n          },\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          },\n          {\n            \"type\": \"STRING\",\n            \"value\": \"else\"\n          },\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"expression\"\n          }\n        ]\n      }\n    },\n    \"concatenated_string\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"python_string\"\n        },\n        {\n          \"type\": \"REPEAT1\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"python_string\"\n          }\n        }\n      ]\n    },\n    \"python_string\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"string_start\"\n        },\n        {\n          \"type\": \"REPEAT\",\n          \"content\": {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"interpolation\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"string_content\"\n              }\n            ]\n          }\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"string_end\"\n        }\n      ]\n    },\n    \"string_content\": {\n      \"type\": \"PREC_RIGHT\",\n      \"value\": 0,\n      \"content\": {\n        \"type\": \"REPEAT1\",\n        \"content\": {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"escape_interpolation\"\n            },\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"escape_sequence\"\n            },\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"_not_escape_sequence\"\n            },\n            {\n              \"type\": \"SYMBOL\",\n              \"name\": \"_string_content\"\n            }\n          ]\n        }\n      }\n    },\n    \"interpolation\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \"{\"\n        },\n        {\n          \"type\": \"FIELD\",\n          \"name\": \"expression\",\n          \"content\": {\n            \"type\": \"SYMBOL\",\n            \"name\": \"_f_expression\"\n          }\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \"=\"\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"FIELD\",\n              \"name\": \"type_conversion\",\n              \"content\": {\n                \"type\": \"SYMBOL\",\n                \"name\": \"type_conversion\"\n              }\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"CHOICE\",\n          \"members\": [\n            {\n              \"type\": \"FIELD\",\n              \"name\": \"format_specifier\",\n              \"content\": {\n                \"type\": \"SYMBOL\",\n                \"name\": \"format_specifier\"\n              }\n            },\n            {\n              \"type\": \"BLANK\"\n            }\n          ]\n        },\n        {\n          \"type\": \"STRING\",\n          \"value\": \"}\"\n        }\n      ]\n    },\n    \"_f_expression\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"expression_list\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"pattern_list\"\n        },\n        {\n          \"type\": \"SYMBOL\",\n          \"name\": \"yield\"\n        }\n      ]\n    },\n    \"escape_sequence\": {\n      \"type\": \"IMMEDIATE_TOKEN\",\n      \"content\": {\n        \"type\": \"PREC\",\n        \"value\": 1,\n        \"content\": {\n          \"type\": \"SEQ\",\n          \"members\": [\n            {\n              \"type\": \"STRING\",\n              \"value\": \"\\\\\"\n            },\n            {\n              \"type\": \"CHOICE\",\n              \"members\": [\n                {\n                  \"type\": \"PATTERN\",\n                  \"value\": \"u[a-fA-F\\\\d]{4}\"\n                },\n                {\n                  \"type\": \"PATTERN\",\n                  \"value\": \"U[a-fA-F\\\\d]{8}\"\n                },\n                {\n                  \"type\": \"PATTERN\",\n                  \"value\": \"x[a-fA-F\\\\d]{2}\"\n                },\n                {\n                  \"type\": \"PATTERN\",\n                  \"value\": \"\\\\d{3}\"\n                },\n                {\n                  \"type\": \"PATTERN\",\n                  \"value\": \"\\\\r?\\\\n\"\n                },\n                {\n                  \"type\": \"PATTERN\",\n                  \"value\": \"[\'\\\"abfrntv\\\\\\\\]\"\n                },\n                {\n                  \"type\": \"PATTERN\",\n                  \"value\": \"N\\\\{[^}]+\\\\}\"\n                }\n              ]\n            }\n          ]\n        }\n      }\n    },\n    \"_not_escape_sequence\": {\n      \"type\": \"IMMEDIATE_TOKEN\",\n      \"content\": {\n        \"type\": \"STRING\",\n        \"value\": \"\\\\\"\n      }\n    },\n    \"format_specifier\": {\n      \"type\": \"SEQ\",\n      \"members\": [\n        {\n          \"type\": \"STRING\",\n          \"value\": \":\"\n        },\n        {\n          \"type\": \"REPEAT\",\n          \"content\": {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"TOKEN\",\n                \"content\": {\n                  \"type\": \"PREC\",\n                  \"value\": 1,\n                  \"content\": {\n                    \"type\": \"PATTERN\",\n                    \"value\": \"[^{}\\\\n]+\"\n                  }\n                }\n              },\n              {\n                \"type\": \"ALIAS\",\n                \"content\": {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"interpolation\"\n                },\n                \"named\": true,\n                \"value\": \"format_expression\"\n              }\n            ]\n          }\n        }\n      ]\n    },\n    \"type_conversion\": {\n      \"type\": \"PATTERN\",\n      \"value\": \"![a-z]\"\n    },\n    \"keyword_identifier\": {\n      \"type\": \"CHOICE\",\n      \"members\": [\n        {\n          \"type\": \"PREC\",\n          \"value\": -3,\n          \"content\": {\n            \"type\": \"ALIAS\",\n            \"content\": {\n              \"type\": \"CHOICE\",\n              \"members\": [\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"print\"\n                },\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"exec\"\n                },\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"async\"\n                },\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"await\"\n                },\n                {\n                  \"type\": \"STRING\",\n                  \"value\": \"match\"\n                }\n              ]\n            },\n            \"named\": true,\n            \"value\": \"python_identifier\"\n          }\n        },\n        {\n          \"type\": \"ALIAS\",\n          \"content\": {\n            \"type\": \"STRING\",\n            \"value\": \"type\"\n          },\n          \"named\": true,\n          \"value\": \"python_identifier\"\n        }\n      ]\n    },\n    \"await\": {\n      \"type\": \"PREC\",\n      \"value\": 20,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"STRING\",\n            \"value\": \"await\"\n          },\n          {\n            \"type\": \"SYMBOL\",\n            \"name\": \"primary_expression\"\n          }\n        ]\n      }\n    },\n    \"integer\": {\n      \"type\": \"TOKEN\",\n      \"content\": {\n        \"type\": \"CHOICE\",\n        \"members\": [\n          {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"CHOICE\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \"0x\"\n                  },\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \"0X\"\n                  }\n                ]\n              },\n              {\n                \"type\": \"REPEAT1\",\n                \"content\": {\n                  \"type\": \"PATTERN\",\n                  \"value\": \"_?[A-Fa-f0-9]+\"\n                }\n              },\n              {\n                \"type\": \"CHOICE\",\n                \"members\": [\n                  {\n                    \"type\": \"PATTERN\",\n                    \"value\": \"[Ll]\"\n                  },\n                  {\n                    \"type\": \"BLANK\"\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"CHOICE\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \"0o\"\n                  },\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \"0O\"\n                  }\n                ]\n              },\n              {\n                \"type\": \"REPEAT1\",\n                \"content\": {\n                  \"type\": \"PATTERN\",\n                  \"value\": \"_?[0-7]+\"\n                }\n              },\n              {\n                \"type\": \"CHOICE\",\n                \"members\": [\n                  {\n                    \"type\": \"PATTERN\",\n                    \"value\": \"[Ll]\"\n                  },\n                  {\n                    \"type\": \"BLANK\"\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"CHOICE\",\n                \"members\": [\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \"0b\"\n                  },\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \"0B\"\n                  }\n                ]\n              },\n              {\n                \"type\": \"REPEAT1\",\n                \"content\": {\n                  \"type\": \"PATTERN\",\n                  \"value\": \"_?[0-1]+\"\n                }\n              },\n              {\n                \"type\": \"CHOICE\",\n                \"members\": [\n                  {\n                    \"type\": \"PATTERN\",\n                    \"value\": \"[Ll]\"\n                  },\n                  {\n                    \"type\": \"BLANK\"\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            \"type\": \"SEQ\",\n            \"members\": [\n              {\n                \"type\": \"REPEAT1\",\n                \"content\": {\n                  \"type\": \"PATTERN\",\n                  \"value\": \"[0-9]+_?\"\n                }\n              },\n              {\n                \"type\": \"CHOICE\",\n                \"members\": [\n                  {\n                    \"type\": \"CHOICE\",\n                    \"members\": [\n                      {\n                        \"type\": \"PATTERN\",\n                        \"value\": \"[Ll]\"\n                      },\n                      {\n                        \"type\": \"BLANK\"\n                      }\n                    ]\n                  },\n                  {\n                    \"type\": \"CHOICE\",\n                    \"members\": [\n                      {\n                        \"type\": \"PATTERN\",\n                        \"value\": \"[jJ]\"\n                      },\n                      {\n                        \"type\": \"BLANK\"\n                      }\n                    ]\n                  }\n                ]\n              }\n            ]\n          }\n        ]\n      }\n    },\n    \"float\": {\n      \"type\": \"TOKEN\",\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"REPEAT1\",\n                    \"content\": {\n                      \"type\": \"PATTERN\",\n                      \"value\": \"[0-9]+_?\"\n                    }\n                  },\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \".\"\n                  },\n                  {\n                    \"type\": \"CHOICE\",\n                    \"members\": [\n                      {\n                        \"type\": \"REPEAT1\",\n                        \"content\": {\n                          \"type\": \"PATTERN\",\n                          \"value\": \"[0-9]+_?\"\n                        }\n                      },\n                      {\n                        \"type\": \"BLANK\"\n                      }\n                    ]\n                  },\n                  {\n                    \"type\": \"CHOICE\",\n                    \"members\": [\n                      {\n                        \"type\": \"SEQ\",\n                        \"members\": [\n                          {\n                            \"type\": \"PATTERN\",\n                            \"value\": \"[eE][\\\\+-]?\"\n                          },\n                          {\n                            \"type\": \"REPEAT1\",\n                            \"content\": {\n                              \"type\": \"PATTERN\",\n                              \"value\": \"[0-9]+_?\"\n                            }\n                          }\n                        ]\n                      },\n                      {\n                        \"type\": \"BLANK\"\n                      }\n                    ]\n                  }\n                ]\n              },\n              {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"CHOICE\",\n                    \"members\": [\n                      {\n                        \"type\": \"REPEAT1\",\n                        \"content\": {\n                          \"type\": \"PATTERN\",\n                          \"value\": \"[0-9]+_?\"\n                        }\n                      },\n                      {\n                        \"type\": \"BLANK\"\n                      }\n                    ]\n                  },\n                  {\n                    \"type\": \"STRING\",\n                    \"value\": \".\"\n                  },\n                  {\n                    \"type\": \"REPEAT1\",\n                    \"content\": {\n                      \"type\": \"PATTERN\",\n                      \"value\": \"[0-9]+_?\"\n                    }\n                  },\n                  {\n                    \"type\": \"CHOICE\",\n                    \"members\": [\n                      {\n                        \"type\": \"SEQ\",\n                        \"members\": [\n                          {\n                            \"type\": \"PATTERN\",\n                            \"value\": \"[eE][\\\\+-]?\"\n                          },\n                          {\n                            \"type\": \"REPEAT1\",\n                            \"content\": {\n                              \"type\": \"PATTERN\",\n                              \"value\": \"[0-9]+_?\"\n                            }\n                          }\n                        ]\n                      },\n                      {\n                        \"type\": \"BLANK\"\n                      }\n                    ]\n                  }\n                ]\n              },\n              {\n                \"type\": \"SEQ\",\n                \"members\": [\n                  {\n                    \"type\": \"REPEAT1\",\n                    \"content\": {\n                      \"type\": \"PATTERN\",\n                      \"value\": \"[0-9]+_?\"\n                    }\n                  },\n                  {\n                    \"type\": \"SEQ\",\n                    \"members\": [\n                      {\n                        \"type\": \"PATTERN\",\n                        \"value\": \"[eE][\\\\+-]?\"\n                      },\n                      {\n                        \"type\": \"REPEAT1\",\n                        \"content\": {\n                          \"type\": \"PATTERN\",\n                          \"value\": \"[0-9]+_?\"\n                        }\n                      }\n                    ]\n                  }\n                ]\n              }\n            ]\n          },\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"CHOICE\",\n                \"members\": [\n                  {\n                    \"type\": \"PATTERN\",\n                    \"value\": \"[Ll]\"\n                  },\n                  {\n                    \"type\": \"PATTERN\",\n                    \"value\": \"[jJ]\"\n                  }\n                ]\n              },\n              {\n                \"type\": \"BLANK\"\n              }\n            ]\n          }\n        ]\n      }\n    },\n    \"true\": {\n      \"type\": \"STRING\",\n      \"value\": \"True\"\n    },\n    \"false\": {\n      \"type\": \"STRING\",\n      \"value\": \"False\"\n    },\n    \"none\": {\n      \"type\": \"STRING\",\n      \"value\": \"None\"\n    },\n    \"python_identifier\": {\n      \"type\": \"PATTERN\",\n      \"value\": \"[_\\\\p{XID_Start}][_\\\\p{XID_Continue}]*\"\n    },\n    \"positional_separator\": {\n      \"type\": \"STRING\",\n      \"value\": \"/\"\n    },\n    \"keyword_separator\": {\n      \"type\": \"STRING\",\n      \"value\": \"*\"\n    },\n    \"concatenation\": {\n      \"type\": \"PREC\",\n      \"value\": -1,\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"identifier\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"variable_expansion\"\n              },\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"_dotted_identifier\"\n              }\n            ]\n          },\n          {\n            \"type\": \"REPEAT1\",\n            \"content\": {\n              \"type\": \"SEQ\",\n              \"members\": [\n                {\n                  \"type\": \"SYMBOL\",\n                  \"name\": \"_concat\"\n                },\n                {\n                  \"type\": \"CHOICE\",\n                  \"members\": [\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"identifier\"\n                    },\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"variable_expansion\"\n                    },\n                    {\n                      \"type\": \"SYMBOL\",\n                      \"name\": \"_dotted_identifier\"\n                    }\n                  ]\n                }\n              ]\n            }\n          },\n          {\n            \"type\": \"CHOICE\",\n            \"members\": [\n              {\n                \"type\": \"SYMBOL\",\n                \"name\": \"_concat\"\n              },\n              {\n                \"type\": \"BLANK\"\n              }\n            ]\n          }\n        ]\n      }\n    },\n    \"identifier\": {\n      \"type\": \"PATTERN\",\n      \"value\": \"[a-zA-Z0-9_-]+\"\n    },\n    \"_dotted_identifier\": {\n      \"type\": \"ALIAS\",\n      \"content\": {\n        \"type\": \"PATTERN\",\n        \"value\": \"[.a-zA-Z0-9_-]+\"\n      },\n      \"named\": true,\n      \"value\": \"identifier\"\n    },\n    \"comment\": {\n      \"type\": \"TOKEN\",\n      \"content\": {\n        \"type\": \"SEQ\",\n        \"members\": [\n          {\n            \"type\": \"STRING\",\n            \"value\": \"#\"\n          },\n          {\n            \"type\": \"PATTERN\",\n            \"value\": \".*\"\n          }\n        ]\n      }\n    }\n  },\n  \"extras\": [\n    {\n      \"type\": \"PATTERN\",\n      \"value\": \"\\\\s\"\n    },\n    {\n      \"type\": \"SYMBOL\",\n      \"name\": \"comment\"\n    }\n  ],\n  \"conflicts\": [\n    [\n      \"primary_expression\",\n      \"pattern\"\n    ],\n    [\n      \"primary_expression\",\n      \"list_splat_pattern\"\n    ],\n    [\n      \"tuple\",\n      \"tuple_pattern\"\n    ],\n    [\n      \"list\",\n      \"list_pattern\"\n    ],\n    [\n      \"with_item\",\n      \"_collection_elements\"\n    ],\n    [\n      \"named_expression\",\n      \"as_pattern\"\n    ],\n    [\n      \"print_statement\",\n      \"primary_expression\"\n    ]\n  ],\n  \"precedences\": [],\n  \"externals\": [\n    {\n      \"type\": \"SYMBOL\",\n      \"name\": \"_concat\"\n    },\n    {\n      \"type\": \"SYMBOL\",\n      \"name\": \"_newline\"\n    },\n    {\n      \"type\": \"SYMBOL\",\n      \"name\": \"_indent\"\n    },\n    {\n      \"type\": \"SYMBOL\",\n      \"name\": \"_dedent\"\n    },\n    {\n      \"type\": \"SYMBOL\",\n      \"name\": \"string_start\"\n    },\n    {\n      \"type\": \"SYMBOL\",\n      \"name\": \"_string_content\"\n    },\n    {\n      \"type\": \"SYMBOL\",\n      \"name\": \"escape_interpolation\"\n    },\n    {\n      \"type\": \"SYMBOL\",\n      \"name\": \"string_end\"\n    },\n    {\n      \"type\": \"SYMBOL\",\n      \"name\": \"comment\"\n    },\n    {\n      \"type\": \"STRING\",\n      \"value\": \"]\"\n    },\n    {\n      \"type\": \"STRING\",\n      \"value\": \")\"\n    },\n    {\n      \"type\": \"STRING\",\n      \"value\": \"}\"\n    },\n    {\n      \"type\": \"SYMBOL\",\n      \"name\": \"shell_content\"\n    }\n  ],\n  \"inline\": [\n    \"_simple_statement\",\n    \"_compound_statement\",\n    \"_suite\",\n    \"_expressions\",\n    \"_left_hand_side\",\n    \"keyword_identifier\",\n    \"_dotted_identifier\"\n  ],\n  \"supertypes\": [\n    \"_simple_statement\",\n    \"_compound_statement\",\n    \"expression\",\n    \"primary_expression\",\n    \"pattern\",\n    \"parameter\"\n  ]\n}\n\n";
Expand description

The json source of the BitBake tree-sitter grammar description.