{
  "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
  "name": "openscad",
  "word": "identifier",
  "rules": {
    "source_file": {
      "type": "REPEAT",
      "content": {
        "type": "SYMBOL",
        "name": "statement"
      }
    },
    "statement": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "assignment_statement"
        },
        {
          "type": "SYMBOL",
          "name": "module_definition"
        },
        {
          "type": "SYMBOL",
          "name": "function_definition"
        },
        {
          "type": "SYMBOL",
          "name": "module_instantiation"
        },
        {
          "type": "SYMBOL",
          "name": "include_statement"
        },
        {
          "type": "SYMBOL",
          "name": "use_statement"
        },
        {
          "type": "SYMBOL",
          "name": "if_statement"
        },
        {
          "type": "SYMBOL",
          "name": "for_statement"
        },
        {
          "type": "SYMBOL",
          "name": "echo_statement"
        },
        {
          "type": "SYMBOL",
          "name": "assert_statement"
        },
        {
          "type": "SYMBOL",
          "name": "block"
        }
      ]
    },
    "assignment_statement": {
      "type": "PREC",
      "value": 3,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "name",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "identifier"
                },
                {
                  "type": "SYMBOL",
                  "name": "special_variable"
                }
              ]
            }
          },
          {
            "type": "STRING",
            "value": "="
          },
          {
            "type": "FIELD",
            "name": "value",
            "content": {
              "type": "SYMBOL",
              "name": "_value"
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "STRING",
                "value": ";"
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "module_definition": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "module"
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "identifier"
          }
        },
        {
          "type": "FIELD",
          "name": "parameters",
          "content": {
            "type": "SYMBOL",
            "name": "parameter_list"
          }
        },
        {
          "type": "FIELD",
          "name": "body",
          "content": {
            "type": "CHOICE",
            "members": [
              {
                "type": "PREC",
                "value": 1,
                "content": {
                  "type": "SYMBOL",
                  "name": "block"
                }
              },
              {
                "type": "PREC",
                "value": 0,
                "content": {
                  "type": "SYMBOL",
                  "name": "statement"
                }
              }
            ]
          }
        }
      ]
    },
    "function_definition": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "function"
        },
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "identifier"
          }
        },
        {
          "type": "FIELD",
          "name": "parameters",
          "content": {
            "type": "SYMBOL",
            "name": "parameter_list"
          }
        },
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "FIELD",
          "name": "value",
          "content": {
            "type": "SYMBOL",
            "name": "_value"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": ";"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "parameter_list": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "parameter_declarations"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": ")"
            },
            {
              "type": "PREC",
              "value": -1,
              "content": {
                "type": "IMMEDIATE_TOKEN",
                "content": {
                  "type": "PATTERN",
                  "value": "[;{]"
                }
              }
            }
          ]
        }
      ]
    },
    "parameter_declarations": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "parameter_declaration"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "SYMBOL",
                "name": "parameter_declaration"
              }
            ]
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": ","
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "block": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "statement"
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": "}"
            },
            {
              "type": "PREC",
              "value": -1,
              "content": {
                "type": "IMMEDIATE_TOKEN",
                "content": {
                  "type": "PATTERN",
                  "value": "[;}]"
                }
              }
            }
          ]
        }
      ]
    },
    "module_instantiation": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC",
          "value": 2,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "modifier"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "SYMBOL",
                  "name": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "arguments",
                "content": {
                  "type": "SYMBOL",
                  "name": "argument_list"
                }
              },
              {
                "type": "STRING",
                "value": ";"
              }
            ]
          }
        },
        {
          "type": "PREC",
          "value": 2,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "modifier"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "SYMBOL",
                  "name": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "arguments",
                "content": {
                  "type": "SYMBOL",
                  "name": "argument_list"
                }
              },
              {
                "type": "SYMBOL",
                "name": "block"
              }
            ]
          }
        },
        {
          "type": "PREC",
          "value": 1,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "modifier"
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "FIELD",
                "name": "name",
                "content": {
                  "type": "SYMBOL",
                  "name": "identifier"
                }
              },
              {
                "type": "FIELD",
                "name": "arguments",
                "content": {
                  "type": "SYMBOL",
                  "name": "argument_list"
                }
              },
              {
                "type": "SYMBOL",
                "name": "statement"
              }
            ]
          }
        }
      ]
    },
    "modifier": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "#"
        },
        {
          "type": "STRING",
          "value": "!"
        },
        {
          "type": "STRING",
          "value": "%"
        },
        {
          "type": "STRING",
          "value": "*"
        }
      ]
    },
    "argument_list": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "arguments"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": ")"
            },
            {
              "type": "PREC",
              "value": -1,
              "content": {
                "type": "IMMEDIATE_TOKEN",
                "content": {
                  "type": "PATTERN",
                  "value": "[;{]"
                }
              }
            }
          ]
        }
      ]
    },
    "argument": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_value"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "FIELD",
              "name": "name",
              "content": {
                "type": "SYMBOL",
                "name": "identifier"
              }
            },
            {
              "type": "STRING",
              "value": "="
            },
            {
              "type": "FIELD",
              "name": "value",
              "content": {
                "type": "SYMBOL",
                "name": "_value"
              }
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "FIELD",
              "name": "name",
              "content": {
                "type": "SYMBOL",
                "name": "special_variable"
              }
            },
            {
              "type": "STRING",
              "value": "="
            },
            {
              "type": "FIELD",
              "name": "value",
              "content": {
                "type": "SYMBOL",
                "name": "_value"
              }
            }
          ]
        }
      ]
    },
    "include_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "include"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "string"
            },
            {
              "type": "SYMBOL",
              "name": "angle_bracket_string"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": ";"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "use_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "use"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "string"
            },
            {
              "type": "SYMBOL",
              "name": "angle_bracket_string"
            }
          ]
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": ";"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "if_statement": {
      "type": "PREC_RIGHT",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "if"
          },
          {
            "type": "STRING",
            "value": "("
          },
          {
            "type": "FIELD",
            "name": "condition",
            "content": {
              "type": "SYMBOL",
              "name": "_value"
            }
          },
          {
            "type": "STRING",
            "value": ")"
          },
          {
            "type": "FIELD",
            "name": "consequence",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "block"
                },
                {
                  "type": "SYMBOL",
                  "name": "statement"
                }
              ]
            }
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "else"
                  },
                  {
                    "type": "FIELD",
                    "name": "alternative",
                    "content": {
                      "type": "CHOICE",
                      "members": [
                        {
                          "type": "SYMBOL",
                          "name": "if_statement"
                        },
                        {
                          "type": "SYMBOL",
                          "name": "block"
                        },
                        {
                          "type": "SYMBOL",
                          "name": "statement"
                        }
                      ]
                    }
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          }
        ]
      }
    },
    "for_statement": {
      "type": "PREC",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "for"
          },
          {
            "type": "STRING",
            "value": "("
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "FIELD",
                    "name": "iterator",
                    "content": {
                      "type": "SYMBOL",
                      "name": "identifier"
                    }
                  },
                  {
                    "type": "STRING",
                    "value": "="
                  },
                  {
                    "type": "FIELD",
                    "name": "range",
                    "content": {
                      "type": "SYMBOL",
                      "name": "_value"
                    }
                  }
                ]
              },
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "for_assignment"
                  },
                  {
                    "type": "REPEAT1",
                    "content": {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": ","
                        },
                        {
                          "type": "SYMBOL",
                          "name": "for_assignment"
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "STRING",
            "value": ")"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SYMBOL",
                "name": "block"
              },
              {
                "type": "SYMBOL",
                "name": "statement"
              }
            ]
          }
        ]
      }
    },
    "for_assignment": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "iterator",
          "content": {
            "type": "SYMBOL",
            "name": "identifier"
          }
        },
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "FIELD",
          "name": "range",
          "content": {
            "type": "SYMBOL",
            "name": "_value"
          }
        }
      ]
    },
    "parameter_declaration": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "identifier"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "identifier"
            },
            {
              "type": "STRING",
              "value": "="
            },
            {
              "type": "SYMBOL",
              "name": "_value"
            }
          ]
        },
        {
          "type": "SYMBOL",
          "name": "special_variable"
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "SYMBOL",
              "name": "special_variable"
            },
            {
              "type": "STRING",
              "value": "="
            },
            {
              "type": "SYMBOL",
              "name": "_value"
            }
          ]
        }
      ]
    },
    "echo_statement": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "echo"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SYMBOL",
              "name": "arguments"
            },
            {
              "type": "BLANK"
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": ";"
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "assert_statement": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "assert"
            },
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "FIELD",
              "name": "condition",
              "content": {
                "type": "SYMBOL",
                "name": "_value"
              }
            },
            {
              "type": "STRING",
              "value": ","
            },
            {
              "type": "FIELD",
              "name": "message",
              "content": {
                "type": "SYMBOL",
                "name": "_value"
              }
            },
            {
              "type": "STRING",
              "value": ")"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "STRING",
                  "value": ";"
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "assert"
            },
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "FIELD",
              "name": "condition",
              "content": {
                "type": "SYMBOL",
                "name": "_value"
              }
            },
            {
              "type": "STRING",
              "value": ")"
            },
            {
              "type": "CHOICE",
              "members": [
                {
                  "type": "STRING",
                  "value": ";"
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          ]
        }
      ]
    },
    "echo_expression": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "echo"
          },
          {
            "type": "STRING",
            "value": "("
          },
          {
            "type": "FIELD",
            "name": "arguments",
            "content": {
              "type": "CHOICE",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "arguments"
                },
                {
                  "type": "BLANK"
                }
              ]
            }
          },
          {
            "type": "STRING",
            "value": ")"
          },
          {
            "type": "FIELD",
            "name": "expression",
            "content": {
              "type": "SYMBOL",
              "name": "_value"
            }
          }
        ]
      }
    },
    "assert_expression": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "assert"
              },
              {
                "type": "STRING",
                "value": "("
              },
              {
                "type": "FIELD",
                "name": "condition",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "FIELD",
                "name": "message",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "STRING",
                "value": ")"
              },
              {
                "type": "FIELD",
                "name": "expression",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "assert"
              },
              {
                "type": "STRING",
                "value": "("
              },
              {
                "type": "FIELD",
                "name": "condition",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "STRING",
                "value": ")"
              },
              {
                "type": "FIELD",
                "name": "expression",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        ]
      }
    },
    "arguments": {
      "type": "SEQ",
      "members": [
        {
          "type": "SYMBOL",
          "name": "argument"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "SYMBOL",
                "name": "argument"
              }
            ]
          }
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": ","
            },
            {
              "type": "BLANK"
            }
          ]
        }
      ]
    },
    "primary_expression": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "identifier"
        },
        {
          "type": "SYMBOL",
          "name": "special_variable"
        },
        {
          "type": "SYMBOL",
          "name": "number"
        },
        {
          "type": "SYMBOL",
          "name": "string"
        },
        {
          "type": "SYMBOL",
          "name": "boolean"
        },
        {
          "type": "SYMBOL",
          "name": "undef"
        },
        {
          "type": "SYMBOL",
          "name": "vector_expression"
        },
        {
          "type": "SYMBOL",
          "name": "parenthesized_expression"
        }
      ]
    },
    "expression": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "primary_expression"
        },
        {
          "type": "SYMBOL",
          "name": "binary_expression"
        },
        {
          "type": "SYMBOL",
          "name": "unary_expression"
        },
        {
          "type": "SYMBOL",
          "name": "conditional_expression"
        },
        {
          "type": "SYMBOL",
          "name": "call_expression"
        },
        {
          "type": "SYMBOL",
          "name": "index_expression"
        },
        {
          "type": "SYMBOL",
          "name": "member_expression"
        },
        {
          "type": "SYMBOL",
          "name": "let_expression"
        },
        {
          "type": "SYMBOL",
          "name": "range_expression"
        },
        {
          "type": "SYMBOL",
          "name": "list_comprehension"
        }
      ]
    },
    "_value": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "number"
        },
        {
          "type": "SYMBOL",
          "name": "string"
        },
        {
          "type": "SYMBOL",
          "name": "boolean"
        },
        {
          "type": "SYMBOL",
          "name": "undef"
        },
        {
          "type": "SYMBOL",
          "name": "identifier"
        },
        {
          "type": "SYMBOL",
          "name": "special_variable"
        },
        {
          "type": "PREC_DYNAMIC",
          "value": 10,
          "content": {
            "type": "SYMBOL",
            "name": "range_expression"
          }
        },
        {
          "type": "SYMBOL",
          "name": "vector_expression"
        },
        {
          "type": "SYMBOL",
          "name": "binary_expression"
        },
        {
          "type": "SYMBOL",
          "name": "unary_expression"
        },
        {
          "type": "SYMBOL",
          "name": "conditional_expression"
        },
        {
          "type": "SYMBOL",
          "name": "call_expression"
        },
        {
          "type": "SYMBOL",
          "name": "index_expression"
        },
        {
          "type": "SYMBOL",
          "name": "member_expression"
        },
        {
          "type": "SYMBOL",
          "name": "let_expression"
        },
        {
          "type": "SYMBOL",
          "name": "list_comprehension"
        },
        {
          "type": "SYMBOL",
          "name": "function_literal"
        },
        {
          "type": "SYMBOL",
          "name": "parenthesized_expression"
        },
        {
          "type": "PREC",
          "value": 11,
          "content": {
            "type": "SYMBOL",
            "name": "echo_expression"
          }
        },
        {
          "type": "PREC",
          "value": 11,
          "content": {
            "type": "SYMBOL",
            "name": "assert_expression"
          }
        }
      ]
    },
    "_vector_element": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "number"
        },
        {
          "type": "SYMBOL",
          "name": "string"
        },
        {
          "type": "SYMBOL",
          "name": "boolean"
        },
        {
          "type": "SYMBOL",
          "name": "undef"
        },
        {
          "type": "SYMBOL",
          "name": "identifier"
        },
        {
          "type": "SYMBOL",
          "name": "special_variable"
        },
        {
          "type": "SYMBOL",
          "name": "vector_expression"
        },
        {
          "type": "SYMBOL",
          "name": "binary_expression"
        },
        {
          "type": "SYMBOL",
          "name": "unary_expression"
        },
        {
          "type": "SYMBOL",
          "name": "conditional_expression"
        },
        {
          "type": "SYMBOL",
          "name": "call_expression"
        },
        {
          "type": "SYMBOL",
          "name": "index_expression"
        },
        {
          "type": "SYMBOL",
          "name": "member_expression"
        },
        {
          "type": "SYMBOL",
          "name": "let_expression"
        },
        {
          "type": "SYMBOL",
          "name": "list_comprehension"
        },
        {
          "type": "SYMBOL",
          "name": "parenthesized_expression"
        }
      ]
    },
    "_non_list_comprehension_value": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "number"
        },
        {
          "type": "SYMBOL",
          "name": "string"
        },
        {
          "type": "SYMBOL",
          "name": "boolean"
        },
        {
          "type": "SYMBOL",
          "name": "undef"
        },
        {
          "type": "SYMBOL",
          "name": "identifier"
        },
        {
          "type": "SYMBOL",
          "name": "special_variable"
        },
        {
          "type": "PREC_DYNAMIC",
          "value": 2000,
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "range_expression_non_recursive"
            },
            "named": true,
            "value": "range_expression"
          }
        },
        {
          "type": "PREC",
          "value": -100,
          "content": {
            "type": "ALIAS",
            "content": {
              "type": "SYMBOL",
              "name": "vector_expression_non_recursive"
            },
            "named": true,
            "value": "vector_expression"
          }
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "binary_expression_non_recursive"
          },
          "named": true,
          "value": "binary_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "unary_expression_non_recursive"
          },
          "named": true,
          "value": "unary_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "conditional_expression_non_recursive"
          },
          "named": true,
          "value": "conditional_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "call_expression_non_recursive"
          },
          "named": true,
          "value": "call_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "index_expression_non_recursive"
          },
          "named": true,
          "value": "index_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "member_expression_non_recursive"
          },
          "named": true,
          "value": "member_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "parenthesized_expression_non_recursive"
          },
          "named": true,
          "value": "parenthesized_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "function_literal_non_recursive"
          },
          "named": true,
          "value": "function_literal"
        }
      ]
    },
    "binary_expression": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC_LEFT",
          "value": 1,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "||"
                  },
                  "named": true,
                  "value": "logical_or_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 2,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "&&"
                  },
                  "named": true,
                  "value": "logical_and_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 3,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "=="
                  },
                  "named": true,
                  "value": "equality_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 3,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "!="
                  },
                  "named": true,
                  "value": "inequality_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 4,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "<"
                  },
                  "named": true,
                  "value": "less_than_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 4,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "<="
                  },
                  "named": true,
                  "value": "less_equal_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 4,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": ">"
                  },
                  "named": true,
                  "value": "greater_than_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 4,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": ">="
                  },
                  "named": true,
                  "value": "greater_equal_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 5,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "+"
                  },
                  "named": true,
                  "value": "addition_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 5,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "-"
                  },
                  "named": true,
                  "value": "subtraction_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 6,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "*"
                  },
                  "named": true,
                  "value": "multiplication_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 6,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "/"
                  },
                  "named": true,
                  "value": "division_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 6,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "%"
                  },
                  "named": true,
                  "value": "modulo_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_RIGHT",
          "value": 7,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "^"
                  },
                  "named": true,
                  "value": "exponentiation_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        }
      ]
    },
    "unary_expression": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC_RIGHT",
          "value": 8,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "!"
                  },
                  "named": true,
                  "value": "logical_not_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "operand",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_RIGHT",
          "value": 8,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "-"
                  },
                  "named": true,
                  "value": "unary_minus_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "operand",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_RIGHT",
          "value": 8,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "+"
                  },
                  "named": true,
                  "value": "unary_plus_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "operand",
                "content": {
                  "type": "SYMBOL",
                  "name": "_value"
                }
              }
            ]
          }
        }
      ]
    },
    "conditional_expression": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "condition",
            "content": {
              "type": "SYMBOL",
              "name": "_value"
            }
          },
          {
            "type": "STRING",
            "value": "?"
          },
          {
            "type": "FIELD",
            "name": "consequence",
            "content": {
              "type": "SYMBOL",
              "name": "_value"
            }
          },
          {
            "type": "STRING",
            "value": ":"
          },
          {
            "type": "FIELD",
            "name": "alternative",
            "content": {
              "type": "SYMBOL",
              "name": "_value"
            }
          }
        ]
      }
    },
    "call_expression": {
      "type": "PREC_LEFT",
      "value": 12,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "function",
            "content": {
              "type": "SYMBOL",
              "name": "identifier"
            }
          },
          {
            "type": "FIELD",
            "name": "arguments",
            "content": {
              "type": "SYMBOL",
              "name": "argument_list"
            }
          }
        ]
      }
    },
    "index_expression": {
      "type": "PREC_LEFT",
      "value": 12,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "array",
            "content": {
              "type": "SYMBOL",
              "name": "_value"
            }
          },
          {
            "type": "STRING",
            "value": "["
          },
          {
            "type": "FIELD",
            "name": "index",
            "content": {
              "type": "SYMBOL",
              "name": "_value"
            }
          },
          {
            "type": "STRING",
            "value": "]"
          }
        ]
      }
    },
    "member_expression": {
      "type": "PREC_LEFT",
      "value": 12,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "object",
            "content": {
              "type": "SYMBOL",
              "name": "_value"
            }
          },
          {
            "type": "STRING",
            "value": "."
          },
          {
            "type": "FIELD",
            "name": "property",
            "content": {
              "type": "SYMBOL",
              "name": "identifier"
            }
          }
        ]
      }
    },
    "parenthesized_expression": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SYMBOL",
          "name": "_value"
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "STRING",
              "value": ")"
            },
            {
              "type": "PREC",
              "value": -1,
              "content": {
                "type": "IMMEDIATE_TOKEN",
                "content": {
                  "type": "PATTERN",
                  "value": "[;{]"
                }
              }
            }
          ]
        }
      ]
    },
    "let_expression": {
      "type": "PREC_DYNAMIC",
      "value": 100,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "let"
          },
          {
            "type": "STRING",
            "value": "("
          },
          {
            "type": "SEQ",
            "members": [
              {
                "type": "SYMBOL",
                "name": "let_assignment"
              },
              {
                "type": "REPEAT",
                "content": {
                  "type": "SEQ",
                  "members": [
                    {
                      "type": "STRING",
                      "value": ","
                    },
                    {
                      "type": "SYMBOL",
                      "name": "let_assignment"
                    }
                  ]
                }
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "STRING",
                    "value": ","
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              }
            ]
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "STRING",
                "value": ")"
              },
              {
                "type": "PREC",
                "value": -1,
                "content": {
                  "type": "IMMEDIATE_TOKEN",
                  "content": {
                    "type": "PATTERN",
                    "value": "[;{]"
                  }
                }
              }
            ]
          },
          {
            "type": "FIELD",
            "name": "body",
            "content": {
              "type": "SYMBOL",
              "name": "_value"
            }
          }
        ]
      }
    },
    "let_assignment": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "name",
          "content": {
            "type": "SYMBOL",
            "name": "identifier"
          }
        },
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "FIELD",
          "name": "value",
          "content": {
            "type": "SYMBOL",
            "name": "_value"
          }
        }
      ]
    },
    "function_literal": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "function"
          },
          {
            "type": "FIELD",
            "name": "parameters",
            "content": {
              "type": "SYMBOL",
              "name": "parameter_list"
            }
          },
          {
            "type": "FIELD",
            "name": "body",
            "content": {
              "type": "SYMBOL",
              "name": "_value"
            }
          }
        ]
      }
    },
    "_range_element": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "number"
        },
        {
          "type": "SYMBOL",
          "name": "string"
        },
        {
          "type": "SYMBOL",
          "name": "boolean"
        },
        {
          "type": "SYMBOL",
          "name": "undef"
        },
        {
          "type": "SYMBOL",
          "name": "identifier"
        },
        {
          "type": "SYMBOL",
          "name": "special_variable"
        },
        {
          "type": "SYMBOL",
          "name": "vector_expression"
        },
        {
          "type": "SYMBOL",
          "name": "binary_expression"
        },
        {
          "type": "SYMBOL",
          "name": "unary_expression"
        },
        {
          "type": "SYMBOL",
          "name": "conditional_expression"
        },
        {
          "type": "SYMBOL",
          "name": "call_expression"
        },
        {
          "type": "SYMBOL",
          "name": "index_expression"
        },
        {
          "type": "SYMBOL",
          "name": "member_expression"
        },
        {
          "type": "SYMBOL",
          "name": "let_expression"
        },
        {
          "type": "SYMBOL",
          "name": "list_comprehension"
        },
        {
          "type": "SYMBOL",
          "name": "function_literal"
        },
        {
          "type": "SYMBOL",
          "name": "parenthesized_expression"
        }
      ]
    },
    "range_expression": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC_DYNAMIC",
          "value": 200,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "["
              },
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": "]"
              }
            ]
          }
        },
        {
          "type": "PREC_DYNAMIC",
          "value": 200,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "["
              },
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "step",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": "]"
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 5,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 5,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "step",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              }
            ]
          }
        }
      ]
    },
    "bracketed_range_expression": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC_DYNAMIC",
          "value": 200,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "["
              },
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": "]"
              }
            ]
          }
        },
        {
          "type": "PREC_DYNAMIC",
          "value": 200,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "["
              },
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "step",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": "]"
              }
            ]
          }
        }
      ]
    },
    "bare_range_expression": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC_LEFT",
          "value": 5,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 5,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "step",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_range_element"
                }
              }
            ]
          }
        }
      ]
    },
    "vector_expression": {
      "type": "PREC",
      "value": 1,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "["
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "_vector_element"
                  },
                  {
                    "type": "REPEAT",
                    "content": {
                      "type": "SEQ",
                      "members": [
                        {
                          "type": "STRING",
                          "value": ","
                        },
                        {
                          "type": "SYMBOL",
                          "name": "_vector_element"
                        }
                      ]
                    }
                  },
                  {
                    "type": "CHOICE",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "BLANK"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "STRING",
                "value": "]"
              },
              {
                "type": "PREC",
                "value": -1,
                "content": {
                  "type": "IMMEDIATE_TOKEN",
                  "content": {
                    "type": "PATTERN",
                    "value": "[;{]"
                  }
                }
              }
            ]
          }
        ]
      }
    },
    "list_comprehension": {
      "type": "PREC_DYNAMIC",
      "value": 100,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "["
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "let"
                  },
                  {
                    "type": "STRING",
                    "value": "("
                  },
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "SYMBOL",
                        "name": "let_assignment"
                      },
                      {
                        "type": "REPEAT",
                        "content": {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": ","
                            },
                            {
                              "type": "SYMBOL",
                              "name": "let_assignment"
                            }
                          ]
                        }
                      },
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "STRING",
                            "value": ","
                          },
                          {
                            "type": "BLANK"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "STRING",
                    "value": ")"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "SYMBOL",
            "name": "list_comprehension_for"
          },
          {
            "type": "CHOICE",
            "members": [
              {
                "type": "SEQ",
                "members": [
                  {
                    "type": "STRING",
                    "value": "if"
                  },
                  {
                    "type": "STRING",
                    "value": "("
                  },
                  {
                    "type": "FIELD",
                    "name": "condition",
                    "content": {
                      "type": "SYMBOL",
                      "name": "_non_list_comprehension_value"
                    }
                  },
                  {
                    "type": "STRING",
                    "value": ")"
                  }
                ]
              },
              {
                "type": "BLANK"
              }
            ]
          },
          {
            "type": "FIELD",
            "name": "expr",
            "content": {
              "type": "SYMBOL",
              "name": "_list_comprehension_expr"
            }
          },
          {
            "type": "STRING",
            "value": "]"
          }
        ]
      }
    },
    "_list_comprehension_expr": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "_non_list_comprehension_value"
        },
        {
          "type": "SYMBOL",
          "name": "list_comprehension"
        }
      ]
    },
    "list_comprehension_for": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "for"
        },
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "CHOICE",
          "members": [
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "FIELD",
                  "name": "iterator",
                  "content": {
                    "type": "SYMBOL",
                    "name": "identifier"
                  }
                },
                {
                  "type": "STRING",
                  "value": "="
                },
                {
                  "type": "FIELD",
                  "name": "range",
                  "content": {
                    "type": "SYMBOL",
                    "name": "_non_list_comprehension_value"
                  }
                }
              ]
            },
            {
              "type": "SEQ",
              "members": [
                {
                  "type": "SYMBOL",
                  "name": "list_comprehension_assignment"
                },
                {
                  "type": "REPEAT1",
                  "content": {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "STRING",
                        "value": ","
                      },
                      {
                        "type": "SYMBOL",
                        "name": "list_comprehension_assignment"
                      }
                    ]
                  }
                }
              ]
            }
          ]
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "list_comprehension_assignment": {
      "type": "SEQ",
      "members": [
        {
          "type": "FIELD",
          "name": "iterator",
          "content": {
            "type": "SYMBOL",
            "name": "identifier"
          }
        },
        {
          "type": "STRING",
          "value": "="
        },
        {
          "type": "FIELD",
          "name": "range",
          "content": {
            "type": "SYMBOL",
            "name": "_non_list_comprehension_value"
          }
        }
      ]
    },
    "identifier": {
      "type": "PATTERN",
      "value": "[A-Za-z_][A-Za-z0-9_]*"
    },
    "number": {
      "type": "TOKEN",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "PATTERN",
            "value": "([0-9]+\\.[0-9]*|\\.[0-9]+)([eE][-+]?[0-9]+)?"
          },
          {
            "type": "PATTERN",
            "value": "[0-9]+([eE][-+]?[0-9]+)?"
          }
        ]
      }
    },
    "string": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "\""
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "PATTERN",
                    "value": "[^\"\\\\]+"
                  },
                  {
                    "type": "PATTERN",
                    "value": "\\\\."
                  }
                ]
              }
            },
            {
              "type": "STRING",
              "value": "\""
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "'"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "PATTERN",
                    "value": "[^'\\\\]+"
                  },
                  {
                    "type": "PATTERN",
                    "value": "\\\\."
                  }
                ]
              }
            },
            {
              "type": "STRING",
              "value": "'"
            }
          ]
        }
      ]
    },
    "angle_bracket_string": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "<"
        },
        {
          "type": "PATTERN",
          "value": "[^>]*"
        },
        {
          "type": "STRING",
          "value": ">"
        }
      ]
    },
    "boolean": {
      "type": "CHOICE",
      "members": [
        {
          "type": "STRING",
          "value": "true"
        },
        {
          "type": "STRING",
          "value": "false"
        }
      ]
    },
    "undef": {
      "type": "STRING",
      "value": "undef"
    },
    "special_variable": {
      "type": "PATTERN",
      "value": "\\$[A-Za-z_][A-Za-z0-9_]*"
    },
    "comment": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "//"
            },
            {
              "type": "PATTERN",
              "value": ".*"
            }
          ]
        },
        {
          "type": "TOKEN",
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "/*"
              },
              {
                "type": "PATTERN",
                "value": "([^*]|\\*[^/])*"
              },
              {
                "type": "STRING",
                "value": "*/"
              }
            ]
          }
        }
      ]
    },
    "_vector_element_non_recursive": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "number"
        },
        {
          "type": "SYMBOL",
          "name": "string"
        },
        {
          "type": "SYMBOL",
          "name": "boolean"
        },
        {
          "type": "SYMBOL",
          "name": "undef"
        },
        {
          "type": "SYMBOL",
          "name": "identifier"
        },
        {
          "type": "SYMBOL",
          "name": "special_variable"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "binary_expression_non_recursive"
          },
          "named": true,
          "value": "binary_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "unary_expression_non_recursive"
          },
          "named": true,
          "value": "unary_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "conditional_expression_non_recursive"
          },
          "named": true,
          "value": "conditional_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "call_expression_non_recursive"
          },
          "named": true,
          "value": "call_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "index_expression_non_recursive"
          },
          "named": true,
          "value": "index_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "member_expression_non_recursive"
          },
          "named": true,
          "value": "member_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "parenthesized_expression_non_recursive"
          },
          "named": true,
          "value": "parenthesized_expression"
        },
        {
          "type": "ALIAS",
          "content": {
            "type": "SYMBOL",
            "name": "bare_range_expression_non_recursive"
          },
          "named": true,
          "value": "range_expression"
        }
      ]
    },
    "vector_expression_non_recursive": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC",
          "value": 1,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "["
              },
              {
                "type": "SYMBOL",
                "name": "_vector_element_non_recursive"
              },
              {
                "type": "STRING",
                "value": ","
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SEQ",
                    "members": [
                      {
                        "type": "SYMBOL",
                        "name": "_vector_element_non_recursive"
                      },
                      {
                        "type": "REPEAT",
                        "content": {
                          "type": "SEQ",
                          "members": [
                            {
                              "type": "STRING",
                              "value": ","
                            },
                            {
                              "type": "SYMBOL",
                              "name": "_vector_element_non_recursive"
                            }
                          ]
                        }
                      },
                      {
                        "type": "CHOICE",
                        "members": [
                          {
                            "type": "STRING",
                            "value": ","
                          },
                          {
                            "type": "BLANK"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "BLANK"
                  }
                ]
              },
              {
                "type": "STRING",
                "value": "]"
              }
            ]
          }
        },
        {
          "type": "PREC",
          "value": -50,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "["
              },
              {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "number"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "string"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "boolean"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "undef"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "identifier"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "special_variable"
                  },
                  {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "binary_expression_non_recursive"
                    },
                    "named": true,
                    "value": "binary_expression"
                  },
                  {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "unary_expression_non_recursive"
                    },
                    "named": true,
                    "value": "unary_expression"
                  },
                  {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "conditional_expression_non_recursive"
                    },
                    "named": true,
                    "value": "conditional_expression"
                  },
                  {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "call_expression_non_recursive"
                    },
                    "named": true,
                    "value": "call_expression"
                  },
                  {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "index_expression_non_recursive"
                    },
                    "named": true,
                    "value": "index_expression"
                  },
                  {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "member_expression_non_recursive"
                    },
                    "named": true,
                    "value": "member_expression"
                  },
                  {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "parenthesized_expression_non_recursive"
                    },
                    "named": true,
                    "value": "parenthesized_expression"
                  },
                  {
                    "type": "ALIAS",
                    "content": {
                      "type": "SYMBOL",
                      "name": "bare_range_expression_non_recursive"
                    },
                    "named": true,
                    "value": "range_expression"
                  }
                ]
              },
              {
                "type": "STRING",
                "value": "]"
              }
            ]
          }
        }
      ]
    },
    "binary_expression_non_recursive": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC_LEFT",
          "value": 1,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "||"
                  },
                  "named": true,
                  "value": "logical_or_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 2,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "&&"
                  },
                  "named": true,
                  "value": "logical_and_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 3,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "=="
                  },
                  "named": true,
                  "value": "equality_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 3,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "!="
                  },
                  "named": true,
                  "value": "inequality_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 4,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "<"
                  },
                  "named": true,
                  "value": "less_than_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 4,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "<="
                  },
                  "named": true,
                  "value": "less_equal_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 4,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": ">"
                  },
                  "named": true,
                  "value": "greater_than_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 4,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": ">="
                  },
                  "named": true,
                  "value": "greater_equal_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 5,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "+"
                  },
                  "named": true,
                  "value": "addition_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 5,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "-"
                  },
                  "named": true,
                  "value": "subtraction_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 6,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "*"
                  },
                  "named": true,
                  "value": "multiplication_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 6,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "/"
                  },
                  "named": true,
                  "value": "division_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 6,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "%"
                  },
                  "named": true,
                  "value": "modulo_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_RIGHT",
          "value": 7,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "left",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "^"
                  },
                  "named": true,
                  "value": "exponentiation_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "right",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        }
      ]
    },
    "unary_expression_non_recursive": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC_RIGHT",
          "value": 8,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "!"
                  },
                  "named": true,
                  "value": "logical_not_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "operand",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_RIGHT",
          "value": 8,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "-"
                  },
                  "named": true,
                  "value": "unary_minus_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "operand",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_RIGHT",
          "value": 8,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "operator",
                "content": {
                  "type": "ALIAS",
                  "content": {
                    "type": "STRING",
                    "value": "+"
                  },
                  "named": true,
                  "value": "unary_plus_operator"
                }
              },
              {
                "type": "FIELD",
                "name": "operand",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        }
      ]
    },
    "conditional_expression_non_recursive": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "condition",
            "content": {
              "type": "SYMBOL",
              "name": "_non_list_comprehension_value"
            }
          },
          {
            "type": "STRING",
            "value": "?"
          },
          {
            "type": "FIELD",
            "name": "consequence",
            "content": {
              "type": "SYMBOL",
              "name": "_non_list_comprehension_value"
            }
          },
          {
            "type": "STRING",
            "value": ":"
          },
          {
            "type": "FIELD",
            "name": "alternative",
            "content": {
              "type": "SYMBOL",
              "name": "_non_list_comprehension_value"
            }
          }
        ]
      }
    },
    "call_expression_non_recursive": {
      "type": "PREC_LEFT",
      "value": 12,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "function",
            "content": {
              "type": "SYMBOL",
              "name": "identifier"
            }
          },
          {
            "type": "FIELD",
            "name": "arguments",
            "content": {
              "type": "SYMBOL",
              "name": "argument_list"
            }
          }
        ]
      }
    },
    "index_expression_non_recursive": {
      "type": "PREC_LEFT",
      "value": 12,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "array",
            "content": {
              "type": "SYMBOL",
              "name": "_non_list_comprehension_value"
            }
          },
          {
            "type": "STRING",
            "value": "["
          },
          {
            "type": "FIELD",
            "name": "index",
            "content": {
              "type": "SYMBOL",
              "name": "_non_list_comprehension_value"
            }
          },
          {
            "type": "STRING",
            "value": "]"
          }
        ]
      }
    },
    "member_expression_non_recursive": {
      "type": "PREC_LEFT",
      "value": 12,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "FIELD",
            "name": "object",
            "content": {
              "type": "SYMBOL",
              "name": "_non_list_comprehension_value"
            }
          },
          {
            "type": "STRING",
            "value": "."
          },
          {
            "type": "FIELD",
            "name": "property",
            "content": {
              "type": "SYMBOL",
              "name": "identifier"
            }
          }
        ]
      }
    },
    "bracketed_range_expression_non_recursive": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC_DYNAMIC",
          "value": 100,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "["
              },
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": "]"
              }
            ]
          }
        },
        {
          "type": "PREC_DYNAMIC",
          "value": 100,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "["
              },
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "step",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": "]"
              }
            ]
          }
        }
      ]
    },
    "bare_range_expression_non_recursive": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC_LEFT",
          "value": 5,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 5,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "step",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        }
      ]
    },
    "range_expression_non_recursive": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PREC_DYNAMIC",
          "value": 200,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "["
              },
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": "]"
              }
            ]
          }
        },
        {
          "type": "PREC_DYNAMIC",
          "value": 200,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "STRING",
                "value": "["
              },
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "step",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": "]"
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 5,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        },
        {
          "type": "PREC_LEFT",
          "value": 5,
          "content": {
            "type": "SEQ",
            "members": [
              {
                "type": "FIELD",
                "name": "start",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "step",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              },
              {
                "type": "STRING",
                "value": ":"
              },
              {
                "type": "FIELD",
                "name": "end",
                "content": {
                  "type": "SYMBOL",
                  "name": "_non_list_comprehension_value"
                }
              }
            ]
          }
        }
      ]
    },
    "parenthesized_expression_non_recursive": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "("
        },
        {
          "type": "SYMBOL",
          "name": "_non_list_comprehension_value"
        },
        {
          "type": "STRING",
          "value": ")"
        }
      ]
    },
    "function_literal_non_recursive": {
      "type": "PREC_RIGHT",
      "value": 0,
      "content": {
        "type": "SEQ",
        "members": [
          {
            "type": "STRING",
            "value": "function"
          },
          {
            "type": "FIELD",
            "name": "parameters",
            "content": {
              "type": "SYMBOL",
              "name": "parameter_list"
            }
          },
          {
            "type": "FIELD",
            "name": "body",
            "content": {
              "type": "SYMBOL",
              "name": "_non_list_comprehension_value"
            }
          }
        ]
      }
    }
  },
  "extras": [
    {
      "type": "PATTERN",
      "value": "\\s"
    },
    {
      "type": "SYMBOL",
      "name": "comment"
    }
  ],
  "conflicts": [
    [
      "_value",
      "_range_element"
    ],
    [
      "conditional_expression",
      "let_expression"
    ],
    [
      "range_expression"
    ],
    [
      "range_expression_non_recursive"
    ],
    [
      "bare_range_expression_non_recursive",
      "range_expression_non_recursive"
    ]
  ],
  "precedences": [],
  "externals": [],
  "inline": [],
  "supertypes": [],
  "reserved": {}
}