/* Automatically @generated by tree-sitter v0.25.10 */

#include "tree_sitter/parser.h"

#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif

#define LANGUAGE_VERSION 15
#define STATE_COUNT 111
#define LARGE_STATE_COUNT 2
#define SYMBOL_COUNT 51
#define ALIAS_COUNT 0
#define TOKEN_COUNT 24
#define EXTERNAL_TOKEN_COUNT 0
#define FIELD_COUNT 5
#define MAX_ALIAS_SEQUENCE_LENGTH 10
#define MAX_RESERVED_WORD_SET_SIZE 0
#define PRODUCTION_ID_COUNT 22
#define SUPERTYPE_COUNT 1

enum ts_symbol_identifiers {
  anon_sym_DOT = 1,
  sym_escape_sequence = 2,
  anon_sym_STAR = 3,
  anon_sym_PLUS = 4,
  anon_sym_QMARK = 5,
  sym_identifier = 6,
  aux_sym__immediate_identifier_token1 = 7,
  anon_sym__ = 8,
  anon_sym_AT = 9,
  anon_sym_DQUOTE = 10,
  anon_sym_DQUOTE2 = 11,
  aux_sym_string_content_token1 = 12,
  sym_comment = 13,
  anon_sym_LBRACK = 14,
  anon_sym_RBRACK = 15,
  anon_sym_LPAREN = 16,
  anon_sym_RPAREN = 17,
  anon_sym_MISSING = 18,
  anon_sym_SLASH = 19,
  anon_sym_COLON = 20,
  anon_sym_BANG = 21,
  anon_sym_POUND = 22,
  sym_predicate_type = 23,
  sym_program = 24,
  sym_definition = 25,
  sym__group_expression = 26,
  sym__named_node_expression = 27,
  sym_quantifier = 28,
  sym__immediate_identifier = 29,
  sym__node_identifier = 30,
  sym_capture = 31,
  sym_string = 32,
  sym__immediate_string = 33,
  sym_string_content = 34,
  sym_parameters = 35,
  sym_list = 36,
  sym_grouping = 37,
  sym_missing_node = 38,
  sym_anonymous_node = 39,
  sym_named_node = 40,
  sym__field_name = 41,
  sym_field_definition = 42,
  sym_negated_field = 43,
  sym_predicate = 44,
  aux_sym_program_repeat1 = 45,
  aux_sym_string_content_repeat1 = 46,
  aux_sym_parameters_repeat1 = 47,
  aux_sym_list_repeat1 = 48,
  aux_sym_grouping_repeat1 = 49,
  aux_sym_named_node_repeat1 = 50,
};

static const char * const ts_symbol_names[] = {
  [ts_builtin_sym_end] = "end",
  [anon_sym_DOT] = ".",
  [sym_escape_sequence] = "escape_sequence",
  [anon_sym_STAR] = "*",
  [anon_sym_PLUS] = "+",
  [anon_sym_QMARK] = "\?",
  [sym_identifier] = "identifier",
  [aux_sym__immediate_identifier_token1] = "identifier",
  [anon_sym__] = "_",
  [anon_sym_AT] = "@",
  [anon_sym_DQUOTE] = "\"",
  [anon_sym_DQUOTE2] = "\"",
  [aux_sym_string_content_token1] = "string_content_token1",
  [sym_comment] = "comment",
  [anon_sym_LBRACK] = "[",
  [anon_sym_RBRACK] = "]",
  [anon_sym_LPAREN] = "(",
  [anon_sym_RPAREN] = ")",
  [anon_sym_MISSING] = "MISSING",
  [anon_sym_SLASH] = "/",
  [anon_sym_COLON] = ":",
  [anon_sym_BANG] = "!",
  [anon_sym_POUND] = "#",
  [sym_predicate_type] = "predicate_type",
  [sym_program] = "program",
  [sym_definition] = "definition",
  [sym__group_expression] = "_group_expression",
  [sym__named_node_expression] = "_named_node_expression",
  [sym_quantifier] = "quantifier",
  [sym__immediate_identifier] = "_immediate_identifier",
  [sym__node_identifier] = "_node_identifier",
  [sym_capture] = "capture",
  [sym_string] = "string",
  [sym__immediate_string] = "string",
  [sym_string_content] = "string_content",
  [sym_parameters] = "parameters",
  [sym_list] = "list",
  [sym_grouping] = "grouping",
  [sym_missing_node] = "missing_node",
  [sym_anonymous_node] = "anonymous_node",
  [sym_named_node] = "named_node",
  [sym__field_name] = "_field_name",
  [sym_field_definition] = "field_definition",
  [sym_negated_field] = "negated_field",
  [sym_predicate] = "predicate",
  [aux_sym_program_repeat1] = "program_repeat1",
  [aux_sym_string_content_repeat1] = "string_content_repeat1",
  [aux_sym_parameters_repeat1] = "parameters_repeat1",
  [aux_sym_list_repeat1] = "list_repeat1",
  [aux_sym_grouping_repeat1] = "grouping_repeat1",
  [aux_sym_named_node_repeat1] = "named_node_repeat1",
};

static const TSSymbol ts_symbol_map[] = {
  [ts_builtin_sym_end] = ts_builtin_sym_end,
  [anon_sym_DOT] = anon_sym_DOT,
  [sym_escape_sequence] = sym_escape_sequence,
  [anon_sym_STAR] = anon_sym_STAR,
  [anon_sym_PLUS] = anon_sym_PLUS,
  [anon_sym_QMARK] = anon_sym_QMARK,
  [sym_identifier] = sym_identifier,
  [aux_sym__immediate_identifier_token1] = sym_identifier,
  [anon_sym__] = anon_sym__,
  [anon_sym_AT] = anon_sym_AT,
  [anon_sym_DQUOTE] = anon_sym_DQUOTE,
  [anon_sym_DQUOTE2] = anon_sym_DQUOTE,
  [aux_sym_string_content_token1] = aux_sym_string_content_token1,
  [sym_comment] = sym_comment,
  [anon_sym_LBRACK] = anon_sym_LBRACK,
  [anon_sym_RBRACK] = anon_sym_RBRACK,
  [anon_sym_LPAREN] = anon_sym_LPAREN,
  [anon_sym_RPAREN] = anon_sym_RPAREN,
  [anon_sym_MISSING] = anon_sym_MISSING,
  [anon_sym_SLASH] = anon_sym_SLASH,
  [anon_sym_COLON] = anon_sym_COLON,
  [anon_sym_BANG] = anon_sym_BANG,
  [anon_sym_POUND] = anon_sym_POUND,
  [sym_predicate_type] = sym_predicate_type,
  [sym_program] = sym_program,
  [sym_definition] = sym_definition,
  [sym__group_expression] = sym__group_expression,
  [sym__named_node_expression] = sym__named_node_expression,
  [sym_quantifier] = sym_quantifier,
  [sym__immediate_identifier] = sym__immediate_identifier,
  [sym__node_identifier] = sym__node_identifier,
  [sym_capture] = sym_capture,
  [sym_string] = sym_string,
  [sym__immediate_string] = sym_string,
  [sym_string_content] = sym_string_content,
  [sym_parameters] = sym_parameters,
  [sym_list] = sym_list,
  [sym_grouping] = sym_grouping,
  [sym_missing_node] = sym_missing_node,
  [sym_anonymous_node] = sym_anonymous_node,
  [sym_named_node] = sym_named_node,
  [sym__field_name] = sym__field_name,
  [sym_field_definition] = sym_field_definition,
  [sym_negated_field] = sym_negated_field,
  [sym_predicate] = sym_predicate,
  [aux_sym_program_repeat1] = aux_sym_program_repeat1,
  [aux_sym_string_content_repeat1] = aux_sym_string_content_repeat1,
  [aux_sym_parameters_repeat1] = aux_sym_parameters_repeat1,
  [aux_sym_list_repeat1] = aux_sym_list_repeat1,
  [aux_sym_grouping_repeat1] = aux_sym_grouping_repeat1,
  [aux_sym_named_node_repeat1] = aux_sym_named_node_repeat1,
};

static const TSSymbolMetadata ts_symbol_metadata[] = {
  [ts_builtin_sym_end] = {
    .visible = false,
    .named = true,
  },
  [anon_sym_DOT] = {
    .visible = true,
    .named = false,
  },
  [sym_escape_sequence] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_STAR] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PLUS] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_QMARK] = {
    .visible = true,
    .named = false,
  },
  [sym_identifier] = {
    .visible = true,
    .named = true,
  },
  [aux_sym__immediate_identifier_token1] = {
    .visible = true,
    .named = true,
  },
  [anon_sym__] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DQUOTE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DQUOTE2] = {
    .visible = true,
    .named = false,
  },
  [aux_sym_string_content_token1] = {
    .visible = false,
    .named = false,
  },
  [sym_comment] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_LBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_MISSING] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SLASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_COLON] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_BANG] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_POUND] = {
    .visible = true,
    .named = false,
  },
  [sym_predicate_type] = {
    .visible = true,
    .named = true,
  },
  [sym_program] = {
    .visible = true,
    .named = true,
  },
  [sym_definition] = {
    .visible = false,
    .named = true,
    .supertype = true,
  },
  [sym__group_expression] = {
    .visible = false,
    .named = true,
  },
  [sym__named_node_expression] = {
    .visible = false,
    .named = true,
  },
  [sym_quantifier] = {
    .visible = true,
    .named = true,
  },
  [sym__immediate_identifier] = {
    .visible = false,
    .named = true,
  },
  [sym__node_identifier] = {
    .visible = false,
    .named = true,
  },
  [sym_capture] = {
    .visible = true,
    .named = true,
  },
  [sym_string] = {
    .visible = true,
    .named = true,
  },
  [sym__immediate_string] = {
    .visible = true,
    .named = true,
  },
  [sym_string_content] = {
    .visible = true,
    .named = true,
  },
  [sym_parameters] = {
    .visible = true,
    .named = true,
  },
  [sym_list] = {
    .visible = true,
    .named = true,
  },
  [sym_grouping] = {
    .visible = true,
    .named = true,
  },
  [sym_missing_node] = {
    .visible = true,
    .named = true,
  },
  [sym_anonymous_node] = {
    .visible = true,
    .named = true,
  },
  [sym_named_node] = {
    .visible = true,
    .named = true,
  },
  [sym__field_name] = {
    .visible = false,
    .named = true,
  },
  [sym_field_definition] = {
    .visible = true,
    .named = true,
  },
  [sym_negated_field] = {
    .visible = true,
    .named = true,
  },
  [sym_predicate] = {
    .visible = true,
    .named = true,
  },
  [aux_sym_program_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_string_content_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_parameters_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_list_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_grouping_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_named_node_repeat1] = {
    .visible = false,
    .named = false,
  },
};

enum ts_field_identifiers {
  field_name = 1,
  field_parameters = 2,
  field_quantifier = 3,
  field_supertype = 4,
  field_type = 5,
};

static const char * const ts_field_names[] = {
  [0] = NULL,
  [field_name] = "name",
  [field_parameters] = "parameters",
  [field_quantifier] = "quantifier",
  [field_supertype] = "supertype",
  [field_type] = "type",
};

static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
  [1] = {.index = 0, .length = 1},
  [2] = {.index = 1, .length = 1},
  [3] = {.index = 2, .length = 2},
  [4] = {.index = 4, .length = 1},
  [5] = {.index = 5, .length = 2},
  [6] = {.index = 7, .length = 1},
  [7] = {.index = 8, .length = 1},
  [8] = {.index = 9, .length = 2},
  [9] = {.index = 11, .length = 3},
  [10] = {.index = 14, .length = 2},
  [11] = {.index = 16, .length = 2},
  [12] = {.index = 18, .length = 2},
  [13] = {.index = 20, .length = 4},
  [14] = {.index = 24, .length = 3},
  [15] = {.index = 27, .length = 2},
  [16] = {.index = 29, .length = 3},
  [17] = {.index = 32, .length = 2},
  [18] = {.index = 34, .length = 3},
  [19] = {.index = 37, .length = 2},
  [20] = {.index = 39, .length = 3},
  [21] = {.index = 42, .length = 3},
};

static const TSFieldMapEntry ts_field_map_entries[] = {
  [0] =
    {field_name, 0},
  [1] =
    {field_quantifier, 0},
  [2] =
    {field_name, 0},
    {field_quantifier, 1, .inherited = true},
  [4] =
    {field_name, 1},
  [5] =
    {field_quantifier, 0, .inherited = true},
    {field_quantifier, 1, .inherited = true},
  [7] =
    {field_quantifier, 3, .inherited = true},
  [8] =
    {field_name, 2},
  [9] =
    {field_name, 1},
    {field_quantifier, 3, .inherited = true},
  [11] =
    {field_name, 1},
    {field_name, 2},
    {field_type, 3},
  [14] =
    {field_name, 3},
    {field_supertype, 1},
  [16] =
    {field_name, 2},
    {field_quantifier, 4, .inherited = true},
  [18] =
    {field_name, 1},
    {field_quantifier, 4, .inherited = true},
  [20] =
    {field_name, 1},
    {field_name, 2},
    {field_parameters, 4},
    {field_type, 3},
  [24] =
    {field_name, 3},
    {field_quantifier, 5, .inherited = true},
    {field_supertype, 1},
  [27] =
    {field_name, 1},
    {field_quantifier, 5, .inherited = true},
  [29] =
    {field_name, 3},
    {field_quantifier, 6, .inherited = true},
    {field_supertype, 1},
  [32] =
    {field_name, 1},
    {field_quantifier, 6, .inherited = true},
  [34] =
    {field_name, 3},
    {field_quantifier, 7, .inherited = true},
    {field_supertype, 1},
  [37] =
    {field_name, 1},
    {field_quantifier, 7, .inherited = true},
  [39] =
    {field_name, 3},
    {field_quantifier, 8, .inherited = true},
    {field_supertype, 1},
  [42] =
    {field_name, 3},
    {field_quantifier, 9, .inherited = true},
    {field_supertype, 1},
};

static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
  [0] = {0},
};

static const uint16_t ts_non_terminal_alias_map[] = {
  0,
};

static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
  [0] = 0,
  [1] = 1,
  [2] = 2,
  [3] = 3,
  [4] = 4,
  [5] = 5,
  [6] = 6,
  [7] = 7,
  [8] = 8,
  [9] = 9,
  [10] = 10,
  [11] = 11,
  [12] = 12,
  [13] = 13,
  [14] = 14,
  [15] = 15,
  [16] = 16,
  [17] = 17,
  [18] = 18,
  [19] = 19,
  [20] = 20,
  [21] = 21,
  [22] = 22,
  [23] = 23,
  [24] = 24,
  [25] = 25,
  [26] = 26,
  [27] = 27,
  [28] = 28,
  [29] = 29,
  [30] = 30,
  [31] = 31,
  [32] = 32,
  [33] = 33,
  [34] = 34,
  [35] = 35,
  [36] = 36,
  [37] = 37,
  [38] = 38,
  [39] = 39,
  [40] = 40,
  [41] = 41,
  [42] = 42,
  [43] = 43,
  [44] = 44,
  [45] = 45,
  [46] = 46,
  [47] = 47,
  [48] = 48,
  [49] = 49,
  [50] = 50,
  [51] = 51,
  [52] = 52,
  [53] = 53,
  [54] = 54,
  [55] = 55,
  [56] = 56,
  [57] = 57,
  [58] = 58,
  [59] = 57,
  [60] = 60,
  [61] = 61,
  [62] = 62,
  [63] = 63,
  [64] = 64,
  [65] = 65,
  [66] = 38,
  [67] = 67,
  [68] = 68,
  [69] = 69,
  [70] = 70,
  [71] = 71,
  [72] = 72,
  [73] = 73,
  [74] = 74,
  [75] = 75,
  [76] = 76,
  [77] = 77,
  [78] = 78,
  [79] = 79,
  [80] = 80,
  [81] = 81,
  [82] = 82,
  [83] = 83,
  [84] = 84,
  [85] = 85,
  [86] = 86,
  [87] = 87,
  [88] = 88,
  [89] = 89,
  [90] = 88,
  [91] = 91,
  [92] = 92,
  [93] = 93,
  [94] = 94,
  [95] = 60,
  [96] = 96,
  [97] = 61,
  [98] = 62,
  [99] = 99,
  [100] = 100,
  [101] = 100,
  [102] = 102,
  [103] = 103,
  [104] = 104,
  [105] = 105,
  [106] = 106,
  [107] = 107,
  [108] = 108,
  [109] = 109,
  [110] = 104,
};

static const TSSymbol ts_supertype_symbols[SUPERTYPE_COUNT] = {
  sym_definition,
};

static const TSMapSlice ts_supertype_map_slices[] = {
  [sym_definition] = {.index = 0, .length = 7},
};

static const TSSymbol ts_supertype_map_entries[] = {
  [0] =
    sym_anonymous_node,
    sym_field_definition,
    sym_grouping,
    sym_list,
    sym_missing_node,
    sym_named_node,
    sym_predicate,
};

static bool ts_lex(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      if (eof) ADVANCE(11);
      ADVANCE_MAP(
        '!', 39,
        '"', 28,
        '#', 40,
        '(', 34,
        ')', 35,
        '*', 14,
        '+', 15,
        '.', 12,
        '/', 37,
        ':', 38,
        ';', 31,
        '?', 16,
        '@', 26,
        'M', 18,
        '[', 32,
        '\\', 7,
        ']', 33,
        '_', 25,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(8);
      if (('-' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 1:
      if (lookahead == '\n') SKIP(6);
      if (lookahead == '"') ADVANCE(28);
      if (lookahead == ';') ADVANCE(30);
      if (lookahead == '\\') ADVANCE(7);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') ADVANCE(29);
      if (lookahead != 0) ADVANCE(30);
      END_STATE();
    case 2:
      if (lookahead == '"') ADVANCE(28);
      if (lookahead == ';') ADVANCE(31);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(6);
      if (lookahead == '-' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(24);
      END_STATE();
    case 3:
      ADVANCE_MAP(
        '"', 27,
        '#', 40,
        '(', 34,
        '.', 12,
        ';', 31,
        'M', 18,
        '[', 32,
        '_', 25,
        '!', 41,
        '?', 41,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(4);
      if (lookahead == '-' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 4:
      ADVANCE_MAP(
        '"', 27,
        '#', 40,
        '(', 34,
        '.', 12,
        ';', 31,
        'M', 18,
        '[', 32,
        '_', 25,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(4);
      if (lookahead == '-' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 5:
      if (lookahead == '"') ADVANCE(27);
      if (lookahead == ')') ADVANCE(35);
      if (lookahead == ';') ADVANCE(31);
      if (lookahead == '@') ADVANCE(26);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(5);
      if (lookahead == '-' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 6:
      if (lookahead == ';') ADVANCE(31);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(6);
      END_STATE();
    case 7:
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(13);
      END_STATE();
    case 8:
      if (eof) ADVANCE(11);
      ADVANCE_MAP(
        '!', 39,
        '"', 27,
        '#', 40,
        '(', 34,
        ')', 35,
        '*', 14,
        '+', 15,
        '.', 12,
        ':', 38,
        ';', 31,
        '?', 16,
        '@', 26,
        'M', 18,
        '[', 32,
        ']', 33,
        '_', 25,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(8);
      if (lookahead == '-' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 9:
      if (eof) ADVANCE(11);
      ADVANCE_MAP(
        '!', 39,
        '"', 27,
        '(', 34,
        ')', 35,
        '*', 14,
        '+', 15,
        '.', 12,
        '/', 37,
        ':', 38,
        ';', 31,
        '?', 16,
        '@', 26,
        '[', 32,
        ']', 33,
        '_', 25,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(10);
      if (('-' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 10:
      if (eof) ADVANCE(11);
      ADVANCE_MAP(
        '!', 39,
        '"', 27,
        '(', 34,
        ')', 35,
        '*', 14,
        '+', 15,
        '.', 12,
        ':', 38,
        ';', 31,
        '?', 16,
        '@', 26,
        '[', 32,
        ']', 33,
        '_', 25,
      );
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(10);
      if (lookahead == '-' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 11:
      ACCEPT_TOKEN(ts_builtin_sym_end);
      END_STATE();
    case 12:
      ACCEPT_TOKEN(anon_sym_DOT);
      END_STATE();
    case 13:
      ACCEPT_TOKEN(sym_escape_sequence);
      END_STATE();
    case 14:
      ACCEPT_TOKEN(anon_sym_STAR);
      END_STATE();
    case 15:
      ACCEPT_TOKEN(anon_sym_PLUS);
      END_STATE();
    case 16:
      ACCEPT_TOKEN(anon_sym_QMARK);
      END_STATE();
    case 17:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'G') ADVANCE(36);
      if (lookahead == '-' ||
          lookahead == '.' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 18:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'I') ADVANCE(22);
      if (lookahead == '-' ||
          lookahead == '.' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 19:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'I') ADVANCE(20);
      if (lookahead == '-' ||
          lookahead == '.' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 20:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'N') ADVANCE(17);
      if (lookahead == '-' ||
          lookahead == '.' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 21:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'S') ADVANCE(19);
      if (lookahead == '-' ||
          lookahead == '.' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 22:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'S') ADVANCE(21);
      if (lookahead == '-' ||
          lookahead == '.' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 23:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == '-' ||
          lookahead == '.' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 24:
      ACCEPT_TOKEN(aux_sym__immediate_identifier_token1);
      if (lookahead == '-' ||
          lookahead == '.' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(24);
      END_STATE();
    case 25:
      ACCEPT_TOKEN(anon_sym__);
      if (lookahead == '-' ||
          lookahead == '.' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 26:
      ACCEPT_TOKEN(anon_sym_AT);
      END_STATE();
    case 27:
      ACCEPT_TOKEN(anon_sym_DQUOTE);
      END_STATE();
    case 28:
      ACCEPT_TOKEN(anon_sym_DQUOTE2);
      END_STATE();
    case 29:
      ACCEPT_TOKEN(aux_sym_string_content_token1);
      if (lookahead == ';') ADVANCE(30);
      if (lookahead == '\t' ||
          (0x0b <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') ADVANCE(29);
      if (lookahead != 0 &&
          (lookahead < '\t' || '\r' < lookahead) &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(30);
      END_STATE();
    case 30:
      ACCEPT_TOKEN(aux_sym_string_content_token1);
      if (lookahead != 0 &&
          lookahead != '\n' &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(30);
      END_STATE();
    case 31:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(31);
      END_STATE();
    case 32:
      ACCEPT_TOKEN(anon_sym_LBRACK);
      END_STATE();
    case 33:
      ACCEPT_TOKEN(anon_sym_RBRACK);
      END_STATE();
    case 34:
      ACCEPT_TOKEN(anon_sym_LPAREN);
      END_STATE();
    case 35:
      ACCEPT_TOKEN(anon_sym_RPAREN);
      END_STATE();
    case 36:
      ACCEPT_TOKEN(anon_sym_MISSING);
      if (lookahead == '-' ||
          lookahead == '.' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(23);
      END_STATE();
    case 37:
      ACCEPT_TOKEN(anon_sym_SLASH);
      END_STATE();
    case 38:
      ACCEPT_TOKEN(anon_sym_COLON);
      END_STATE();
    case 39:
      ACCEPT_TOKEN(anon_sym_BANG);
      END_STATE();
    case 40:
      ACCEPT_TOKEN(anon_sym_POUND);
      END_STATE();
    case 41:
      ACCEPT_TOKEN(sym_predicate_type);
      END_STATE();
    default:
      return false;
  }
}

static const TSLexerMode ts_lex_modes[STATE_COUNT] = {
  [0] = {.lex_state = 0},
  [1] = {.lex_state = 9},
  [2] = {.lex_state = 3},
  [3] = {.lex_state = 9},
  [4] = {.lex_state = 9},
  [5] = {.lex_state = 9},
  [6] = {.lex_state = 9},
  [7] = {.lex_state = 9},
  [8] = {.lex_state = 9},
  [9] = {.lex_state = 9},
  [10] = {.lex_state = 9},
  [11] = {.lex_state = 9},
  [12] = {.lex_state = 9},
  [13] = {.lex_state = 9},
  [14] = {.lex_state = 9},
  [15] = {.lex_state = 9},
  [16] = {.lex_state = 9},
  [17] = {.lex_state = 9},
  [18] = {.lex_state = 9},
  [19] = {.lex_state = 9},
  [20] = {.lex_state = 9},
  [21] = {.lex_state = 9},
  [22] = {.lex_state = 9},
  [23] = {.lex_state = 9},
  [24] = {.lex_state = 9},
  [25] = {.lex_state = 9},
  [26] = {.lex_state = 9},
  [27] = {.lex_state = 9},
  [28] = {.lex_state = 9},
  [29] = {.lex_state = 9},
  [30] = {.lex_state = 9},
  [31] = {.lex_state = 9},
  [32] = {.lex_state = 9},
  [33] = {.lex_state = 9},
  [34] = {.lex_state = 9},
  [35] = {.lex_state = 9},
  [36] = {.lex_state = 9},
  [37] = {.lex_state = 9},
  [38] = {.lex_state = 9},
  [39] = {.lex_state = 9},
  [40] = {.lex_state = 9},
  [41] = {.lex_state = 9},
  [42] = {.lex_state = 9},
  [43] = {.lex_state = 9},
  [44] = {.lex_state = 9},
  [45] = {.lex_state = 9},
  [46] = {.lex_state = 9},
  [47] = {.lex_state = 9},
  [48] = {.lex_state = 9},
  [49] = {.lex_state = 9},
  [50] = {.lex_state = 9},
  [51] = {.lex_state = 9},
  [52] = {.lex_state = 9},
  [53] = {.lex_state = 9},
  [54] = {.lex_state = 9},
  [55] = {.lex_state = 9},
  [56] = {.lex_state = 9},
  [57] = {.lex_state = 9},
  [58] = {.lex_state = 9},
  [59] = {.lex_state = 9},
  [60] = {.lex_state = 9},
  [61] = {.lex_state = 9},
  [62] = {.lex_state = 9},
  [63] = {.lex_state = 9},
  [64] = {.lex_state = 9},
  [65] = {.lex_state = 9},
  [66] = {.lex_state = 9},
  [67] = {.lex_state = 9},
  [68] = {.lex_state = 9},
  [69] = {.lex_state = 9},
  [70] = {.lex_state = 9},
  [71] = {.lex_state = 9},
  [72] = {.lex_state = 9},
  [73] = {.lex_state = 9},
  [74] = {.lex_state = 5},
  [75] = {.lex_state = 9},
  [76] = {.lex_state = 9},
  [77] = {.lex_state = 9},
  [78] = {.lex_state = 9},
  [79] = {.lex_state = 9},
  [80] = {.lex_state = 9},
  [81] = {.lex_state = 9},
  [82] = {.lex_state = 9},
  [83] = {.lex_state = 9},
  [84] = {.lex_state = 5},
  [85] = {.lex_state = 9},
  [86] = {.lex_state = 9},
  [87] = {.lex_state = 5},
  [88] = {.lex_state = 1},
  [89] = {.lex_state = 9},
  [90] = {.lex_state = 1},
  [91] = {.lex_state = 1},
  [92] = {.lex_state = 1},
  [93] = {.lex_state = 1},
  [94] = {.lex_state = 5},
  [95] = {.lex_state = 5},
  [96] = {.lex_state = 2},
  [97] = {.lex_state = 5},
  [98] = {.lex_state = 5},
  [99] = {.lex_state = 2},
  [100] = {.lex_state = 2},
  [101] = {.lex_state = 2},
  [102] = {.lex_state = 5},
  [103] = {.lex_state = 0},
  [104] = {.lex_state = 2},
  [105] = {.lex_state = 0},
  [106] = {.lex_state = 0},
  [107] = {.lex_state = 3},
  [108] = {.lex_state = 2},
  [109] = {.lex_state = 0},
  [110] = {.lex_state = 2},
};

static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
  [STATE(0)] = {
    [ts_builtin_sym_end] = ACTIONS(1),
    [anon_sym_DOT] = ACTIONS(1),
    [sym_escape_sequence] = ACTIONS(1),
    [anon_sym_STAR] = ACTIONS(1),
    [anon_sym_PLUS] = ACTIONS(1),
    [anon_sym_QMARK] = ACTIONS(1),
    [sym_identifier] = ACTIONS(1),
    [anon_sym__] = ACTIONS(1),
    [anon_sym_AT] = ACTIONS(1),
    [anon_sym_DQUOTE] = ACTIONS(1),
    [anon_sym_DQUOTE2] = ACTIONS(1),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(1),
    [anon_sym_RBRACK] = ACTIONS(1),
    [anon_sym_LPAREN] = ACTIONS(1),
    [anon_sym_RPAREN] = ACTIONS(1),
    [anon_sym_MISSING] = ACTIONS(1),
    [anon_sym_SLASH] = ACTIONS(1),
    [anon_sym_COLON] = ACTIONS(1),
    [anon_sym_BANG] = ACTIONS(1),
    [anon_sym_POUND] = ACTIONS(1),
    [sym_predicate_type] = ACTIONS(1),
  },
  [STATE(1)] = {
    [sym_program] = STATE(105),
    [sym_definition] = STATE(33),
    [sym_string] = STATE(38),
    [sym_list] = STATE(68),
    [sym_grouping] = STATE(68),
    [sym_missing_node] = STATE(68),
    [sym_anonymous_node] = STATE(68),
    [sym_named_node] = STATE(68),
    [sym__field_name] = STATE(59),
    [sym_field_definition] = STATE(68),
    [sym_predicate] = STATE(68),
    [aux_sym_program_repeat1] = STATE(33),
    [ts_builtin_sym_end] = ACTIONS(5),
    [sym_identifier] = ACTIONS(7),
    [anon_sym__] = ACTIONS(9),
    [anon_sym_DQUOTE] = ACTIONS(11),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(15),
  },
};

static const uint16_t ts_small_parse_table[] = {
  [0] = 14,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(19), 1,
      sym_identifier,
    ACTIONS(21), 1,
      anon_sym__,
    ACTIONS(23), 1,
      anon_sym_MISSING,
    STATE(3), 1,
      sym__node_identifier,
    STATE(18), 1,
      aux_sym_grouping_repeat1,
    STATE(57), 1,
      sym__field_name,
    STATE(66), 1,
      sym_string,
    ACTIONS(17), 2,
      anon_sym_DOT,
      anon_sym_POUND,
    STATE(86), 2,
      sym_definition,
      sym__group_expression,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [51] = 14,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(25), 1,
      anon_sym_DOT,
    ACTIONS(27), 1,
      anon_sym_RPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    STATE(5), 1,
      aux_sym_named_node_repeat1,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(80), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [102] = 14,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    ACTIONS(31), 1,
      anon_sym_DOT,
    ACTIONS(33), 1,
      anon_sym_RPAREN,
    STATE(7), 1,
      aux_sym_named_node_repeat1,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(72), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [153] = 13,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    ACTIONS(35), 1,
      anon_sym_RPAREN,
    STATE(8), 1,
      aux_sym_named_node_repeat1,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(82), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [201] = 13,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    ACTIONS(37), 1,
      anon_sym_RPAREN,
    STATE(8), 1,
      aux_sym_named_node_repeat1,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(73), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [249] = 13,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    ACTIONS(39), 1,
      anon_sym_RPAREN,
    STATE(8), 1,
      aux_sym_named_node_repeat1,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(78), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [297] = 13,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(41), 1,
      sym_identifier,
    ACTIONS(44), 1,
      anon_sym__,
    ACTIONS(47), 1,
      anon_sym_DQUOTE,
    ACTIONS(50), 1,
      anon_sym_LBRACK,
    ACTIONS(53), 1,
      anon_sym_LPAREN,
    ACTIONS(56), 1,
      anon_sym_RPAREN,
    ACTIONS(58), 1,
      anon_sym_BANG,
    STATE(8), 1,
      aux_sym_named_node_repeat1,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(76), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [345] = 13,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    ACTIONS(61), 1,
      anon_sym_RPAREN,
    STATE(8), 1,
      aux_sym_named_node_repeat1,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(81), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [393] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    STATE(6), 1,
      aux_sym_named_node_repeat1,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(82), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [438] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    ACTIONS(37), 1,
      anon_sym_RPAREN,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(75), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [483] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    ACTIONS(63), 1,
      anon_sym_RPAREN,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(75), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [528] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    STATE(9), 1,
      aux_sym_named_node_repeat1,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(78), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [573] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    ACTIONS(61), 1,
      anon_sym_RPAREN,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(75), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [618] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    ACTIONS(65), 1,
      anon_sym_RPAREN,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(75), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [663] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    ACTIONS(67), 1,
      anon_sym_RPAREN,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(75), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [708] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    ACTIONS(69), 1,
      anon_sym_RPAREN,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(75), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [753] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(71), 1,
      anon_sym__,
    ACTIONS(73), 1,
      anon_sym_RPAREN,
    STATE(19), 1,
      aux_sym_grouping_repeat1,
    STATE(57), 1,
      sym__field_name,
    STATE(66), 1,
      sym_string,
    STATE(86), 2,
      sym_definition,
      sym__group_expression,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [797] = 12,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(75), 1,
      sym_identifier,
    ACTIONS(78), 1,
      anon_sym__,
    ACTIONS(81), 1,
      anon_sym_DQUOTE,
    ACTIONS(84), 1,
      anon_sym_LBRACK,
    ACTIONS(87), 1,
      anon_sym_LPAREN,
    ACTIONS(90), 1,
      anon_sym_RPAREN,
    STATE(19), 1,
      aux_sym_grouping_repeat1,
    STATE(57), 1,
      sym__field_name,
    STATE(66), 1,
      sym_string,
    STATE(86), 2,
      sym_definition,
      sym__group_expression,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [841] = 11,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(94), 1,
      sym_identifier,
    ACTIONS(97), 1,
      anon_sym__,
    ACTIONS(100), 1,
      anon_sym_DQUOTE,
    ACTIONS(103), 1,
      anon_sym_LBRACK,
    ACTIONS(106), 1,
      anon_sym_LPAREN,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    ACTIONS(92), 2,
      ts_builtin_sym_end,
      anon_sym_RBRACK,
    STATE(20), 2,
      sym_definition,
      aux_sym_program_repeat1,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [883] = 11,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(29), 1,
      anon_sym_BANG,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(75), 3,
      sym_definition,
      sym__named_node_expression,
      sym_negated_field,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [925] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(113), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(109), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [958] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(119), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(117), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [991] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(128), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(126), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(123), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(121), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1024] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(133), 2,
      sym_identifier,
      anon_sym__,
    STATE(30), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(131), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1057] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(137), 2,
      sym_identifier,
      anon_sym__,
    STATE(32), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(135), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1090] = 11,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(71), 1,
      anon_sym__,
    ACTIONS(90), 1,
      anon_sym_RPAREN,
    STATE(57), 1,
      sym__field_name,
    STATE(66), 1,
      sym_string,
    STATE(85), 2,
      sym_definition,
      sym__group_expression,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [1131] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(141), 2,
      sym_identifier,
      anon_sym__,
    STATE(22), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(139), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1164] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(145), 2,
      sym_identifier,
      anon_sym__,
    STATE(35), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(143), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1197] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(149), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(147), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1230] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(153), 2,
      sym_identifier,
      anon_sym__,
    STATE(55), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(151), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1263] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(157), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(155), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1296] = 11,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(159), 1,
      ts_builtin_sym_end,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(20), 2,
      sym_definition,
      aux_sym_program_repeat1,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [1337] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(163), 2,
      sym_identifier,
      anon_sym__,
    STATE(40), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(161), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1370] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(167), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(165), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1403] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(171), 2,
      sym_identifier,
      anon_sym__,
    STATE(41), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(169), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1436] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(175), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(173), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1469] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(179), 2,
      sym_identifier,
      anon_sym__,
    STATE(37), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(177), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1502] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(183), 2,
      sym_identifier,
      anon_sym__,
    STATE(44), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(181), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1535] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(187), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(185), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1568] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(191), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(189), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1601] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(195), 2,
      sym_identifier,
      anon_sym__,
    STATE(47), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(193), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1634] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(199), 2,
      sym_identifier,
      anon_sym__,
    STATE(48), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(197), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1667] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(203), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(201), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1700] = 11,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(205), 1,
      anon_sym_RBRACK,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(20), 2,
      sym_definition,
      aux_sym_program_repeat1,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [1741] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(209), 2,
      sym_identifier,
      anon_sym__,
    STATE(51), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(207), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1774] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(213), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(211), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1807] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(217), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(215), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1840] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(221), 2,
      sym_identifier,
      anon_sym__,
    STATE(52), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(219), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1873] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(225), 2,
      sym_identifier,
      anon_sym__,
    STATE(53), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(223), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1906] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(229), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(227), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1939] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(233), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(231), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [1972] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(237), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(235), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2005] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(241), 2,
      sym_identifier,
      anon_sym__,
    STATE(23), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(239), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2038] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(245), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(243), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2071] = 10,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(45), 2,
      sym_definition,
      aux_sym_program_repeat1,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [2109] = 10,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    ACTIONS(71), 1,
      anon_sym__,
    STATE(57), 1,
      sym__field_name,
    STATE(66), 1,
      sym_string,
    STATE(67), 1,
      sym_definition,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [2146] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(249), 2,
      sym_identifier,
      anon_sym__,
    STATE(37), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(247), 6,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2177] = 10,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      sym_identifier,
    ACTIONS(9), 1,
      anon_sym__,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(13), 1,
      anon_sym_LBRACK,
    ACTIONS(15), 1,
      anon_sym_LPAREN,
    STATE(38), 1,
      sym_string,
    STATE(59), 1,
      sym__field_name,
    STATE(67), 1,
      sym_definition,
    STATE(68), 7,
      sym_list,
      sym_grouping,
      sym_missing_node,
      sym_anonymous_node,
      sym_named_node,
      sym_field_definition,
      sym_predicate,
  [2214] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(253), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(251), 12,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
      anon_sym_AT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2236] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(257), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(255), 12,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
      anon_sym_AT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2258] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(261), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(259), 12,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
      anon_sym_AT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2280] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(265), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(263), 12,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
      anon_sym_AT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2302] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(175), 2,
      sym_identifier,
      anon_sym__,
    STATE(24), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(173), 5,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
  [2332] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(269), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(267), 12,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
      anon_sym_AT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2354] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(115), 1,
      anon_sym_AT,
    STATE(65), 1,
      sym_quantifier,
    ACTIONS(179), 2,
      sym_identifier,
      anon_sym__,
    STATE(64), 2,
      sym_capture,
      aux_sym_list_repeat1,
    ACTIONS(111), 3,
      anon_sym_STAR,
      anon_sym_PLUS,
      anon_sym_QMARK,
    ACTIONS(177), 5,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
  [2384] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(273), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(271), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2402] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(277), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(275), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2420] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(281), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(279), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2438] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(283), 1,
      anon_sym_SLASH,
    ACTIONS(285), 1,
      anon_sym_COLON,
    ACTIONS(249), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(247), 6,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2460] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(289), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(287), 8,
      ts_builtin_sym_end,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2478] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(291), 1,
      anon_sym_DOT,
    ACTIONS(293), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(295), 5,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2496] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(297), 1,
      anon_sym_DOT,
    ACTIONS(293), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(295), 5,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2514] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(299), 1,
      sym_identifier,
    ACTIONS(301), 1,
      anon_sym_AT,
    ACTIONS(303), 1,
      anon_sym_DQUOTE,
    ACTIONS(305), 1,
      anon_sym_RPAREN,
    STATE(106), 1,
      sym_parameters,
    STATE(87), 3,
      sym_capture,
      sym_string,
      aux_sym_parameters_repeat1,
  [2538] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(309), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(307), 6,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2554] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(311), 1,
      anon_sym_DOT,
    ACTIONS(293), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(295), 5,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2572] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(315), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(313), 6,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2588] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(317), 1,
      anon_sym_DOT,
    ACTIONS(293), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(295), 5,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2606] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(321), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(319), 6,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2622] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(323), 1,
      anon_sym_DOT,
    ACTIONS(293), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(295), 5,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2640] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(325), 1,
      anon_sym_DOT,
    ACTIONS(293), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(295), 5,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2658] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(327), 1,
      anon_sym_DOT,
    ACTIONS(293), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(295), 5,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2676] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(331), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(329), 6,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_BANG,
  [2692] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(333), 1,
      sym_identifier,
    ACTIONS(336), 1,
      anon_sym_AT,
    ACTIONS(339), 1,
      anon_sym_DQUOTE,
    ACTIONS(342), 1,
      anon_sym_RPAREN,
    STATE(84), 3,
      sym_capture,
      sym_string,
      aux_sym_parameters_repeat1,
  [2713] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(346), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(344), 5,
      anon_sym_DOT,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
  [2728] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(348), 1,
      anon_sym_DOT,
    ACTIONS(350), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(352), 4,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
  [2745] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(301), 1,
      anon_sym_AT,
    ACTIONS(303), 1,
      anon_sym_DQUOTE,
    ACTIONS(354), 1,
      sym_identifier,
    ACTIONS(356), 1,
      anon_sym_RPAREN,
    STATE(84), 3,
      sym_capture,
      sym_string,
      aux_sym_parameters_repeat1,
  [2766] = 5,
    ACTIONS(360), 1,
      anon_sym_DQUOTE2,
    ACTIONS(362), 1,
      sym_comment,
    STATE(92), 1,
      aux_sym_string_content_repeat1,
    STATE(104), 1,
      sym_string_content,
    ACTIONS(358), 2,
      sym_escape_sequence,
      aux_sym_string_content_token1,
  [2783] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(364), 2,
      sym_identifier,
      anon_sym__,
    ACTIONS(366), 3,
      anon_sym_DQUOTE,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
  [2796] = 5,
    ACTIONS(362), 1,
      sym_comment,
    ACTIONS(368), 1,
      anon_sym_DQUOTE2,
    STATE(92), 1,
      aux_sym_string_content_repeat1,
    STATE(110), 1,
      sym_string_content,
    ACTIONS(358), 2,
      sym_escape_sequence,
      aux_sym_string_content_token1,
  [2813] = 5,
    ACTIONS(362), 1,
      sym_comment,
    ACTIONS(370), 1,
      anon_sym_DQUOTE2,
    STATE(92), 1,
      aux_sym_string_content_repeat1,
    STATE(108), 1,
      sym_string_content,
    ACTIONS(358), 2,
      sym_escape_sequence,
      aux_sym_string_content_token1,
  [2830] = 4,
    ACTIONS(362), 1,
      sym_comment,
    ACTIONS(374), 1,
      anon_sym_DQUOTE2,
    STATE(93), 1,
      aux_sym_string_content_repeat1,
    ACTIONS(372), 2,
      sym_escape_sequence,
      aux_sym_string_content_token1,
  [2844] = 4,
    ACTIONS(362), 1,
      sym_comment,
    ACTIONS(379), 1,
      anon_sym_DQUOTE2,
    STATE(93), 1,
      aux_sym_string_content_repeat1,
    ACTIONS(376), 2,
      sym_escape_sequence,
      aux_sym_string_content_token1,
  [2858] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(11), 1,
      anon_sym_DQUOTE,
    ACTIONS(381), 1,
      sym_identifier,
    ACTIONS(383), 1,
      anon_sym_RPAREN,
    STATE(109), 1,
      sym_string,
  [2874] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(251), 4,
      sym_identifier,
      anon_sym_AT,
      anon_sym_DQUOTE,
      anon_sym_RPAREN,
  [2884] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(385), 1,
      aux_sym__immediate_identifier_token1,
    ACTIONS(387), 1,
      anon_sym_DQUOTE2,
    STATE(4), 2,
      sym__immediate_identifier,
      sym__immediate_string,
  [2898] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(255), 4,
      sym_identifier,
      anon_sym_AT,
      anon_sym_DQUOTE,
      anon_sym_RPAREN,
  [2908] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(259), 4,
      sym_identifier,
      anon_sym_AT,
      anon_sym_DQUOTE,
      anon_sym_RPAREN,
  [2918] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(389), 1,
      aux_sym__immediate_identifier_token1,
    STATE(107), 1,
      sym__immediate_identifier,
  [2928] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(391), 1,
      aux_sym__immediate_identifier_token1,
    STATE(61), 1,
      sym__immediate_identifier,
  [2938] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(393), 1,
      aux_sym__immediate_identifier_token1,
    STATE(97), 1,
      sym__immediate_identifier,
  [2948] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(395), 1,
      sym_identifier,
  [2955] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(285), 1,
      anon_sym_COLON,
  [2962] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(397), 1,
      anon_sym_DQUOTE2,
  [2969] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(399), 1,
      ts_builtin_sym_end,
  [2976] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(401), 1,
      anon_sym_RPAREN,
  [2983] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(403), 1,
      sym_predicate_type,
  [2990] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(405), 1,
      anon_sym_DQUOTE2,
  [2997] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(407), 1,
      anon_sym_RPAREN,
  [3004] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(409), 1,
      anon_sym_DQUOTE2,
};

static const uint32_t ts_small_parse_table_map[] = {
  [SMALL_STATE(2)] = 0,
  [SMALL_STATE(3)] = 51,
  [SMALL_STATE(4)] = 102,
  [SMALL_STATE(5)] = 153,
  [SMALL_STATE(6)] = 201,
  [SMALL_STATE(7)] = 249,
  [SMALL_STATE(8)] = 297,
  [SMALL_STATE(9)] = 345,
  [SMALL_STATE(10)] = 393,
  [SMALL_STATE(11)] = 438,
  [SMALL_STATE(12)] = 483,
  [SMALL_STATE(13)] = 528,
  [SMALL_STATE(14)] = 573,
  [SMALL_STATE(15)] = 618,
  [SMALL_STATE(16)] = 663,
  [SMALL_STATE(17)] = 708,
  [SMALL_STATE(18)] = 753,
  [SMALL_STATE(19)] = 797,
  [SMALL_STATE(20)] = 841,
  [SMALL_STATE(21)] = 883,
  [SMALL_STATE(22)] = 925,
  [SMALL_STATE(23)] = 958,
  [SMALL_STATE(24)] = 991,
  [SMALL_STATE(25)] = 1024,
  [SMALL_STATE(26)] = 1057,
  [SMALL_STATE(27)] = 1090,
  [SMALL_STATE(28)] = 1131,
  [SMALL_STATE(29)] = 1164,
  [SMALL_STATE(30)] = 1197,
  [SMALL_STATE(31)] = 1230,
  [SMALL_STATE(32)] = 1263,
  [SMALL_STATE(33)] = 1296,
  [SMALL_STATE(34)] = 1337,
  [SMALL_STATE(35)] = 1370,
  [SMALL_STATE(36)] = 1403,
  [SMALL_STATE(37)] = 1436,
  [SMALL_STATE(38)] = 1469,
  [SMALL_STATE(39)] = 1502,
  [SMALL_STATE(40)] = 1535,
  [SMALL_STATE(41)] = 1568,
  [SMALL_STATE(42)] = 1601,
  [SMALL_STATE(43)] = 1634,
  [SMALL_STATE(44)] = 1667,
  [SMALL_STATE(45)] = 1700,
  [SMALL_STATE(46)] = 1741,
  [SMALL_STATE(47)] = 1774,
  [SMALL_STATE(48)] = 1807,
  [SMALL_STATE(49)] = 1840,
  [SMALL_STATE(50)] = 1873,
  [SMALL_STATE(51)] = 1906,
  [SMALL_STATE(52)] = 1939,
  [SMALL_STATE(53)] = 1972,
  [SMALL_STATE(54)] = 2005,
  [SMALL_STATE(55)] = 2038,
  [SMALL_STATE(56)] = 2071,
  [SMALL_STATE(57)] = 2109,
  [SMALL_STATE(58)] = 2146,
  [SMALL_STATE(59)] = 2177,
  [SMALL_STATE(60)] = 2214,
  [SMALL_STATE(61)] = 2236,
  [SMALL_STATE(62)] = 2258,
  [SMALL_STATE(63)] = 2280,
  [SMALL_STATE(64)] = 2302,
  [SMALL_STATE(65)] = 2332,
  [SMALL_STATE(66)] = 2354,
  [SMALL_STATE(67)] = 2384,
  [SMALL_STATE(68)] = 2402,
  [SMALL_STATE(69)] = 2420,
  [SMALL_STATE(70)] = 2438,
  [SMALL_STATE(71)] = 2460,
  [SMALL_STATE(72)] = 2478,
  [SMALL_STATE(73)] = 2496,
  [SMALL_STATE(74)] = 2514,
  [SMALL_STATE(75)] = 2538,
  [SMALL_STATE(76)] = 2554,
  [SMALL_STATE(77)] = 2572,
  [SMALL_STATE(78)] = 2588,
  [SMALL_STATE(79)] = 2606,
  [SMALL_STATE(80)] = 2622,
  [SMALL_STATE(81)] = 2640,
  [SMALL_STATE(82)] = 2658,
  [SMALL_STATE(83)] = 2676,
  [SMALL_STATE(84)] = 2692,
  [SMALL_STATE(85)] = 2713,
  [SMALL_STATE(86)] = 2728,
  [SMALL_STATE(87)] = 2745,
  [SMALL_STATE(88)] = 2766,
  [SMALL_STATE(89)] = 2783,
  [SMALL_STATE(90)] = 2796,
  [SMALL_STATE(91)] = 2813,
  [SMALL_STATE(92)] = 2830,
  [SMALL_STATE(93)] = 2844,
  [SMALL_STATE(94)] = 2858,
  [SMALL_STATE(95)] = 2874,
  [SMALL_STATE(96)] = 2884,
  [SMALL_STATE(97)] = 2898,
  [SMALL_STATE(98)] = 2908,
  [SMALL_STATE(99)] = 2918,
  [SMALL_STATE(100)] = 2928,
  [SMALL_STATE(101)] = 2938,
  [SMALL_STATE(102)] = 2948,
  [SMALL_STATE(103)] = 2955,
  [SMALL_STATE(104)] = 2962,
  [SMALL_STATE(105)] = 2969,
  [SMALL_STATE(106)] = 2976,
  [SMALL_STATE(107)] = 2983,
  [SMALL_STATE(108)] = 2990,
  [SMALL_STATE(109)] = 2997,
  [SMALL_STATE(110)] = 3004,
};

static const TSParseActionEntry ts_parse_actions[] = {
  [0] = {.entry = {.count = 0, .reusable = false}},
  [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
  [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(),
  [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 0, 0, 0),
  [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103),
  [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38),
  [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
  [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
  [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
  [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99),
  [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70),
  [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58),
  [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94),
  [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
  [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
  [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102),
  [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
  [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
  [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
  [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
  [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
  [41] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_named_node_repeat1, 2, 0, 0), SHIFT_REPEAT(103),
  [44] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_named_node_repeat1, 2, 0, 0), SHIFT_REPEAT(38),
  [47] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_named_node_repeat1, 2, 0, 0), SHIFT_REPEAT(88),
  [50] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_named_node_repeat1, 2, 0, 0), SHIFT_REPEAT(56),
  [53] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_named_node_repeat1, 2, 0, 0), SHIFT_REPEAT(2),
  [56] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_named_node_repeat1, 2, 0, 0),
  [58] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_named_node_repeat1, 2, 0, 0), SHIFT_REPEAT(102),
  [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
  [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
  [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
  [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
  [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
  [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66),
  [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
  [75] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_grouping_repeat1, 2, 0, 0), SHIFT_REPEAT(103),
  [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_grouping_repeat1, 2, 0, 0), SHIFT_REPEAT(66),
  [81] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_grouping_repeat1, 2, 0, 0), SHIFT_REPEAT(88),
  [84] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_grouping_repeat1, 2, 0, 0), SHIFT_REPEAT(56),
  [87] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_grouping_repeat1, 2, 0, 0), SHIFT_REPEAT(2),
  [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_grouping_repeat1, 2, 0, 0),
  [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0),
  [94] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(103),
  [97] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(38),
  [100] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(88),
  [103] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(56),
  [106] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(2),
  [109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 4, 0, 8),
  [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
  [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 4, 0, 8),
  [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100),
  [117] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 10, 0, 21),
  [119] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 10, 0, 21),
  [121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 5),
  [123] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 5), SHIFT_REPEAT(63),
  [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2, 0, 5),
  [128] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 5), SHIFT_REPEAT(100),
  [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 0),
  [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3, 0, 0),
  [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_missing_node, 3, 0, 0),
  [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_missing_node, 3, 0, 0),
  [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 3, 0, 4),
  [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 3, 0, 4),
  [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_grouping, 3, 0, 0),
  [145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_grouping, 3, 0, 0),
  [147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4, 0, 6),
  [149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 4, 0, 6),
  [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_missing_node, 4, 0, 7),
  [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_missing_node, 4, 0, 7),
  [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_missing_node, 4, 0, 6),
  [157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_missing_node, 4, 0, 6),
  [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0),
  [161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 4, 0, 4),
  [163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 4, 0, 4),
  [165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_grouping, 4, 0, 6),
  [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_grouping, 4, 0, 6),
  [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 5, 0, 10),
  [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 5, 0, 10),
  [173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_anonymous_node, 2, 0, 3),
  [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_anonymous_node, 2, 0, 3),
  [177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_anonymous_node, 1, 0, 1),
  [179] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_anonymous_node, 1, 0, 1),
  [181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 5, 0, 4),
  [183] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 5, 0, 4),
  [185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 5, 0, 12),
  [187] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 5, 0, 12),
  [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 6, 0, 14),
  [191] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 6, 0, 14),
  [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 6, 0, 10),
  [195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 6, 0, 10),
  [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 6, 0, 4),
  [199] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 6, 0, 4),
  [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 6, 0, 15),
  [203] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 6, 0, 15),
  [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
  [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 7, 0, 10),
  [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 7, 0, 10),
  [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 7, 0, 16),
  [213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 7, 0, 16),
  [215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 7, 0, 17),
  [217] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 7, 0, 17),
  [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 7, 0, 4),
  [221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 7, 0, 4),
  [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 8, 0, 10),
  [225] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 8, 0, 10),
  [227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 8, 0, 18),
  [229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 8, 0, 18),
  [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 8, 0, 19),
  [233] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 8, 0, 19),
  [235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 9, 0, 20),
  [237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 9, 0, 20),
  [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_node, 9, 0, 10),
  [241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_node, 9, 0, 10),
  [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_missing_node, 5, 0, 11),
  [245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_missing_node, 5, 0, 11),
  [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__node_identifier, 1, 0, 0),
  [249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__node_identifier, 1, 0, 0),
  [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3, 0, 0),
  [253] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3, 0, 0),
  [255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_capture, 2, 0, 4),
  [257] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_capture, 2, 0, 4),
  [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, 0, 0),
  [261] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, 0, 0),
  [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quantifier, 1, 0, 0),
  [265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quantifier, 1, 0, 0),
  [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 1, 0, 2),
  [269] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 1, 0, 2),
  [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_definition, 2, 0, 1),
  [273] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_definition, 2, 0, 1),
  [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 1, 0, 0),
  [277] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_definition, 1, 0, 0),
  [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_predicate, 6, 0, 13),
  [281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_predicate, 6, 0, 13),
  [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96),
  [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89),
  [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_predicate, 5, 0, 9),
  [289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_predicate, 5, 0, 9),
  [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
  [293] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_named_node_repeat1, 1, 0, 0),
  [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_named_node_repeat1, 1, 0, 0),
  [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
  [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87),
  [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
  [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90),
  [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71),
  [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__named_node_expression, 3, 0, 0),
  [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__named_node_expression, 3, 0, 0),
  [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
  [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__immediate_string, 3, 0, 0),
  [315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__immediate_string, 3, 0, 0),
  [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
  [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_negated_field, 2, 0, 0),
  [321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_negated_field, 2, 0, 0),
  [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
  [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
  [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
  [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__immediate_string, 2, 0, 0),
  [331] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__immediate_string, 2, 0, 0),
  [333] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(84),
  [336] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(101),
  [339] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(90),
  [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2, 0, 0),
  [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__group_expression, 3, 0, 0),
  [346] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__group_expression, 3, 0, 0),
  [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
  [350] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_grouping_repeat1, 1, 0, 0),
  [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_grouping_repeat1, 1, 0, 0),
  [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
  [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 1, 0, 0),
  [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92),
  [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
  [362] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(),
  [364] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_name, 2, 0, 0),
  [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_name, 2, 0, 0),
  [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98),
  [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
  [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93),
  [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_content, 1, 0, 0),
  [376] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), SHIFT_REPEAT(93),
  [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0),
  [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109),
  [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
  [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
  [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
  [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107),
  [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
  [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
  [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
  [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
  [399] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
  [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69),
  [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
  [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77),
  [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
  [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95),
};

#ifdef __cplusplus
extern "C" {
#endif
#ifdef TREE_SITTER_HIDE_SYMBOLS
#define TS_PUBLIC
#elif defined(_WIN32)
#define TS_PUBLIC __declspec(dllexport)
#else
#define TS_PUBLIC __attribute__((visibility("default")))
#endif

TS_PUBLIC const TSLanguage *tree_sitter_query(void) {
  static const TSLanguage language = {
    .abi_version = LANGUAGE_VERSION,
    .symbol_count = SYMBOL_COUNT,
    .alias_count = ALIAS_COUNT,
    .token_count = TOKEN_COUNT,
    .external_token_count = EXTERNAL_TOKEN_COUNT,
    .state_count = STATE_COUNT,
    .large_state_count = LARGE_STATE_COUNT,
    .production_id_count = PRODUCTION_ID_COUNT,
    .supertype_count = SUPERTYPE_COUNT,
    .field_count = FIELD_COUNT,
    .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
    .parse_table = &ts_parse_table[0][0],
    .small_parse_table = ts_small_parse_table,
    .small_parse_table_map = ts_small_parse_table_map,
    .parse_actions = ts_parse_actions,
    .symbol_names = ts_symbol_names,
    .field_names = ts_field_names,
    .field_map_slices = ts_field_map_slices,
    .field_map_entries = ts_field_map_entries,
    .supertype_map_slices = ts_supertype_map_slices,
    .supertype_map_entries = ts_supertype_map_entries,
    .supertype_symbols = ts_supertype_symbols,
    .symbol_metadata = ts_symbol_metadata,
    .public_symbol_map = ts_symbol_map,
    .alias_map = ts_non_terminal_alias_map,
    .alias_sequences = &ts_alias_sequences[0][0],
    .lex_modes = (const void*)ts_lex_modes,
    .lex_fn = ts_lex,
    .primary_state_ids = ts_primary_state_ids,
    .name = "query",
    .max_reserved_word_set_size = 0,
    .metadata = {
      .major_version = 0,
      .minor_version = 8,
      .patch_version = 0,
    },
  };
  return &language;
}
#ifdef __cplusplus
}
#endif
