#include "tree_sitter/parser.h"

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

#define LANGUAGE_VERSION 14
#define STATE_COUNT 124
#define LARGE_STATE_COUNT 2
#define SYMBOL_COUNT 80
#define ALIAS_COUNT 0
#define TOKEN_COUNT 41
#define EXTERNAL_TOKEN_COUNT 0
#define FIELD_COUNT 14
#define MAX_ALIAS_SEQUENCE_LENGTH 5
#define PRODUCTION_ID_COUNT 22

enum ts_symbol_identifiers {
  anon_sym_COMMA = 1,
  anon_sym_LBRACK = 2,
  anon_sym_RBRACK = 3,
  anon_sym_AT = 4,
  anon_sym_LPAREN = 5,
  anon_sym_RPAREN = 6,
  anon_sym_PIPE = 7,
  anon_sym_COLON = 8,
  anon_sym_COLON_COLON = 9,
  anon_sym_LBRACE = 10,
  anon_sym_RBRACE = 11,
  anon_sym_BANG = 12,
  anon_sym_QMARK = 13,
  anon_sym_STAR = 14,
  anon_sym_PLUS = 15,
  sym_symbol = 16,
  sym_greek = 17,
  sym_math_symbol = 18,
  sym_pictograph = 19,
  anon_sym_DOT_DOT = 20,
  anon_sym_DOT_DOT_DOT = 21,
  sym_integer = 22,
  sym_decimal = 23,
  sym_hexadecimal = 24,
  sym_octal = 25,
  sym_measurement = 26,
  sym_single_quoted_string = 27,
  sym_double_quoted_string = 28,
  sym_backticked_string = 29,
  sym_tagged_string = 30,
  sym_fenced_string = 31,
  anon_sym_DASH = 32,
  anon_sym_LT_DASH = 33,
  anon_sym_DASH_GT = 34,
  anon_sym_EQ = 35,
  anon_sym_LT_EQ = 36,
  anon_sym_EQ_GT = 37,
  anon_sym_TILDE = 38,
  anon_sym_LT_TILDE = 39,
  anon_sym_TILDE_GT = 40,
  sym_gram = 41,
  sym_pattern = 42,
  sym_pattern_element = 43,
  sym_subject = 44,
  sym_annotation = 45,
  sym__path = 46,
  sym_node = 47,
  sym_relationship = 48,
  sym__association = 49,
  sym__reference = 50,
  sym__attributes = 51,
  sym__value = 52,
  sym_labels = 53,
  sym_label = 54,
  sym_binder = 55,
  sym_record = 56,
  sym_property = 57,
  sym__key = 58,
  sym_range = 59,
  sym__numeric_literal = 60,
  sym__string_literal = 61,
  sym__relationship_value = 62,
  sym_single_undirected = 63,
  sym_single_bidirectional = 64,
  sym_single_right = 65,
  sym_single_left = 66,
  sym_double_undirected = 67,
  sym_double_bidirectional = 68,
  sym_double_right = 69,
  sym_double_left = 70,
  sym_squiggle_undirected = 71,
  sym_squiggle_bidirectional = 72,
  sym_squiggle_right = 73,
  sym_squiggle_left = 74,
  aux_sym_gram_repeat1 = 75,
  aux_sym_pattern_repeat1 = 76,
  aux_sym_pattern_element_repeat1 = 77,
  aux_sym_labels_repeat1 = 78,
  aux_sym_record_repeat1 = 79,
};

static const char * const ts_symbol_names[] = {
  [ts_builtin_sym_end] = "end",
  [anon_sym_COMMA] = ",",
  [anon_sym_LBRACK] = "[",
  [anon_sym_RBRACK] = "]",
  [anon_sym_AT] = "@",
  [anon_sym_LPAREN] = "(",
  [anon_sym_RPAREN] = ")",
  [anon_sym_PIPE] = "|",
  [anon_sym_COLON] = ":",
  [anon_sym_COLON_COLON] = "::",
  [anon_sym_LBRACE] = "{",
  [anon_sym_RBRACE] = "}",
  [anon_sym_BANG] = "!",
  [anon_sym_QMARK] = "\?",
  [anon_sym_STAR] = "*",
  [anon_sym_PLUS] = "+",
  [sym_symbol] = "symbol",
  [sym_greek] = "greek",
  [sym_math_symbol] = "math_symbol",
  [sym_pictograph] = "pictograph",
  [anon_sym_DOT_DOT] = "..",
  [anon_sym_DOT_DOT_DOT] = "...",
  [sym_integer] = "integer",
  [sym_decimal] = "decimal",
  [sym_hexadecimal] = "hexadecimal",
  [sym_octal] = "octal",
  [sym_measurement] = "measurement",
  [sym_single_quoted_string] = "single_quoted_string",
  [sym_double_quoted_string] = "double_quoted_string",
  [sym_backticked_string] = "backticked_string",
  [sym_tagged_string] = "tagged_string",
  [sym_fenced_string] = "fenced_string",
  [anon_sym_DASH] = "-",
  [anon_sym_LT_DASH] = "<-",
  [anon_sym_DASH_GT] = "->",
  [anon_sym_EQ] = "=",
  [anon_sym_LT_EQ] = "<=",
  [anon_sym_EQ_GT] = "=>",
  [anon_sym_TILDE] = "~",
  [anon_sym_LT_TILDE] = "<~",
  [anon_sym_TILDE_GT] = "~>",
  [sym_gram] = "gram",
  [sym_pattern] = "pattern",
  [sym_pattern_element] = "pattern_element",
  [sym_subject] = "subject",
  [sym_annotation] = "annotation",
  [sym__path] = "_path",
  [sym_node] = "node",
  [sym_relationship] = "relationship",
  [sym__association] = "_association",
  [sym__reference] = "_reference",
  [sym__attributes] = "_attributes",
  [sym__value] = "_value",
  [sym_labels] = "labels",
  [sym_label] = "label",
  [sym_binder] = "binder",
  [sym_record] = "record",
  [sym_property] = "property",
  [sym__key] = "_key",
  [sym_range] = "range",
  [sym__numeric_literal] = "_numeric_literal",
  [sym__string_literal] = "_string_literal",
  [sym__relationship_value] = "_relationship_value",
  [sym_single_undirected] = "single_undirected",
  [sym_single_bidirectional] = "single_bidirectional",
  [sym_single_right] = "single_right",
  [sym_single_left] = "single_left",
  [sym_double_undirected] = "double_undirected",
  [sym_double_bidirectional] = "double_bidirectional",
  [sym_double_right] = "double_right",
  [sym_double_left] = "double_left",
  [sym_squiggle_undirected] = "squiggle_undirected",
  [sym_squiggle_bidirectional] = "squiggle_bidirectional",
  [sym_squiggle_right] = "squiggle_right",
  [sym_squiggle_left] = "squiggle_left",
  [aux_sym_gram_repeat1] = "gram_repeat1",
  [aux_sym_pattern_repeat1] = "pattern_repeat1",
  [aux_sym_pattern_element_repeat1] = "pattern_element_repeat1",
  [aux_sym_labels_repeat1] = "labels_repeat1",
  [aux_sym_record_repeat1] = "record_repeat1",
};

static const TSSymbol ts_symbol_map[] = {
  [ts_builtin_sym_end] = ts_builtin_sym_end,
  [anon_sym_COMMA] = anon_sym_COMMA,
  [anon_sym_LBRACK] = anon_sym_LBRACK,
  [anon_sym_RBRACK] = anon_sym_RBRACK,
  [anon_sym_AT] = anon_sym_AT,
  [anon_sym_LPAREN] = anon_sym_LPAREN,
  [anon_sym_RPAREN] = anon_sym_RPAREN,
  [anon_sym_PIPE] = anon_sym_PIPE,
  [anon_sym_COLON] = anon_sym_COLON,
  [anon_sym_COLON_COLON] = anon_sym_COLON_COLON,
  [anon_sym_LBRACE] = anon_sym_LBRACE,
  [anon_sym_RBRACE] = anon_sym_RBRACE,
  [anon_sym_BANG] = anon_sym_BANG,
  [anon_sym_QMARK] = anon_sym_QMARK,
  [anon_sym_STAR] = anon_sym_STAR,
  [anon_sym_PLUS] = anon_sym_PLUS,
  [sym_symbol] = sym_symbol,
  [sym_greek] = sym_greek,
  [sym_math_symbol] = sym_math_symbol,
  [sym_pictograph] = sym_pictograph,
  [anon_sym_DOT_DOT] = anon_sym_DOT_DOT,
  [anon_sym_DOT_DOT_DOT] = anon_sym_DOT_DOT_DOT,
  [sym_integer] = sym_integer,
  [sym_decimal] = sym_decimal,
  [sym_hexadecimal] = sym_hexadecimal,
  [sym_octal] = sym_octal,
  [sym_measurement] = sym_measurement,
  [sym_single_quoted_string] = sym_single_quoted_string,
  [sym_double_quoted_string] = sym_double_quoted_string,
  [sym_backticked_string] = sym_backticked_string,
  [sym_tagged_string] = sym_tagged_string,
  [sym_fenced_string] = sym_fenced_string,
  [anon_sym_DASH] = anon_sym_DASH,
  [anon_sym_LT_DASH] = anon_sym_LT_DASH,
  [anon_sym_DASH_GT] = anon_sym_DASH_GT,
  [anon_sym_EQ] = anon_sym_EQ,
  [anon_sym_LT_EQ] = anon_sym_LT_EQ,
  [anon_sym_EQ_GT] = anon_sym_EQ_GT,
  [anon_sym_TILDE] = anon_sym_TILDE,
  [anon_sym_LT_TILDE] = anon_sym_LT_TILDE,
  [anon_sym_TILDE_GT] = anon_sym_TILDE_GT,
  [sym_gram] = sym_gram,
  [sym_pattern] = sym_pattern,
  [sym_pattern_element] = sym_pattern_element,
  [sym_subject] = sym_subject,
  [sym_annotation] = sym_annotation,
  [sym__path] = sym__path,
  [sym_node] = sym_node,
  [sym_relationship] = sym_relationship,
  [sym__association] = sym__association,
  [sym__reference] = sym__reference,
  [sym__attributes] = sym__attributes,
  [sym__value] = sym__value,
  [sym_labels] = sym_labels,
  [sym_label] = sym_label,
  [sym_binder] = sym_binder,
  [sym_record] = sym_record,
  [sym_property] = sym_property,
  [sym__key] = sym__key,
  [sym_range] = sym_range,
  [sym__numeric_literal] = sym__numeric_literal,
  [sym__string_literal] = sym__string_literal,
  [sym__relationship_value] = sym__relationship_value,
  [sym_single_undirected] = sym_single_undirected,
  [sym_single_bidirectional] = sym_single_bidirectional,
  [sym_single_right] = sym_single_right,
  [sym_single_left] = sym_single_left,
  [sym_double_undirected] = sym_double_undirected,
  [sym_double_bidirectional] = sym_double_bidirectional,
  [sym_double_right] = sym_double_right,
  [sym_double_left] = sym_double_left,
  [sym_squiggle_undirected] = sym_squiggle_undirected,
  [sym_squiggle_bidirectional] = sym_squiggle_bidirectional,
  [sym_squiggle_right] = sym_squiggle_right,
  [sym_squiggle_left] = sym_squiggle_left,
  [aux_sym_gram_repeat1] = aux_sym_gram_repeat1,
  [aux_sym_pattern_repeat1] = aux_sym_pattern_repeat1,
  [aux_sym_pattern_element_repeat1] = aux_sym_pattern_element_repeat1,
  [aux_sym_labels_repeat1] = aux_sym_labels_repeat1,
  [aux_sym_record_repeat1] = aux_sym_record_repeat1,
};

static const TSSymbolMetadata ts_symbol_metadata[] = {
  [ts_builtin_sym_end] = {
    .visible = false,
    .named = true,
  },
  [anon_sym_COMMA] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_COLON] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_COLON_COLON] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_BANG] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_QMARK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_STAR] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PLUS] = {
    .visible = true,
    .named = false,
  },
  [sym_symbol] = {
    .visible = true,
    .named = true,
  },
  [sym_greek] = {
    .visible = true,
    .named = true,
  },
  [sym_math_symbol] = {
    .visible = true,
    .named = true,
  },
  [sym_pictograph] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_DOT_DOT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DOT_DOT_DOT] = {
    .visible = true,
    .named = false,
  },
  [sym_integer] = {
    .visible = true,
    .named = true,
  },
  [sym_decimal] = {
    .visible = true,
    .named = true,
  },
  [sym_hexadecimal] = {
    .visible = true,
    .named = true,
  },
  [sym_octal] = {
    .visible = true,
    .named = true,
  },
  [sym_measurement] = {
    .visible = true,
    .named = true,
  },
  [sym_single_quoted_string] = {
    .visible = true,
    .named = true,
  },
  [sym_double_quoted_string] = {
    .visible = true,
    .named = true,
  },
  [sym_backticked_string] = {
    .visible = true,
    .named = true,
  },
  [sym_tagged_string] = {
    .visible = true,
    .named = true,
  },
  [sym_fenced_string] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_DASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_DASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DASH_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_EQ_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_TILDE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_TILDE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_TILDE_GT] = {
    .visible = true,
    .named = false,
  },
  [sym_gram] = {
    .visible = true,
    .named = true,
  },
  [sym_pattern] = {
    .visible = true,
    .named = true,
  },
  [sym_pattern_element] = {
    .visible = true,
    .named = true,
  },
  [sym_subject] = {
    .visible = true,
    .named = true,
  },
  [sym_annotation] = {
    .visible = true,
    .named = true,
  },
  [sym__path] = {
    .visible = false,
    .named = true,
  },
  [sym_node] = {
    .visible = true,
    .named = true,
  },
  [sym_relationship] = {
    .visible = true,
    .named = true,
  },
  [sym__association] = {
    .visible = false,
    .named = true,
  },
  [sym__reference] = {
    .visible = false,
    .named = true,
  },
  [sym__attributes] = {
    .visible = false,
    .named = true,
  },
  [sym__value] = {
    .visible = false,
    .named = true,
  },
  [sym_labels] = {
    .visible = true,
    .named = true,
  },
  [sym_label] = {
    .visible = true,
    .named = true,
  },
  [sym_binder] = {
    .visible = true,
    .named = true,
  },
  [sym_record] = {
    .visible = true,
    .named = true,
  },
  [sym_property] = {
    .visible = true,
    .named = true,
  },
  [sym__key] = {
    .visible = false,
    .named = true,
  },
  [sym_range] = {
    .visible = true,
    .named = true,
  },
  [sym__numeric_literal] = {
    .visible = false,
    .named = true,
  },
  [sym__string_literal] = {
    .visible = false,
    .named = true,
  },
  [sym__relationship_value] = {
    .visible = false,
    .named = true,
  },
  [sym_single_undirected] = {
    .visible = true,
    .named = true,
  },
  [sym_single_bidirectional] = {
    .visible = true,
    .named = true,
  },
  [sym_single_right] = {
    .visible = true,
    .named = true,
  },
  [sym_single_left] = {
    .visible = true,
    .named = true,
  },
  [sym_double_undirected] = {
    .visible = true,
    .named = true,
  },
  [sym_double_bidirectional] = {
    .visible = true,
    .named = true,
  },
  [sym_double_right] = {
    .visible = true,
    .named = true,
  },
  [sym_double_left] = {
    .visible = true,
    .named = true,
  },
  [sym_squiggle_undirected] = {
    .visible = true,
    .named = true,
  },
  [sym_squiggle_bidirectional] = {
    .visible = true,
    .named = true,
  },
  [sym_squiggle_right] = {
    .visible = true,
    .named = true,
  },
  [sym_squiggle_left] = {
    .visible = true,
    .named = true,
  },
  [aux_sym_gram_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_pattern_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_pattern_element_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_labels_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_record_repeat1] = {
    .visible = false,
    .named = false,
  },
};

enum ts_field_identifiers {
  field_association = 1,
  field_attributes = 2,
  field_binder = 3,
  field_cardinality = 4,
  field_identifier = 5,
  field_key = 6,
  field_labels = 7,
  field_left = 8,
  field_lower = 9,
  field_record = 10,
  field_right = 11,
  field_root = 12,
  field_upper = 13,
  field_value = 14,
};

static const char * const ts_field_names[] = {
  [0] = NULL,
  [field_association] = "association",
  [field_attributes] = "attributes",
  [field_binder] = "binder",
  [field_cardinality] = "cardinality",
  [field_identifier] = "identifier",
  [field_key] = "key",
  [field_labels] = "labels",
  [field_left] = "left",
  [field_lower] = "lower",
  [field_record] = "record",
  [field_right] = "right",
  [field_root] = "root",
  [field_upper] = "upper",
  [field_value] = "value",
};

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

static const TSFieldMapEntry ts_field_map_entries[] = {
  [0] =
    {field_root, 0},
  [1] =
    {field_identifier, 0},
  [2] =
    {field_labels, 0},
  [3] =
    {field_record, 0},
  [4] =
    {field_upper, 1},
  [5] =
    {field_lower, 0},
  [6] =
    {field_association, 1},
  [7] =
    {field_attributes, 1},
    {field_identifier, 1, .inherited = true},
    {field_labels, 1, .inherited = true},
    {field_record, 1, .inherited = true},
  [11] =
    {field_identifier, 0},
    {field_labels, 1},
  [13] =
    {field_identifier, 0},
    {field_record, 1},
  [15] =
    {field_labels, 0},
    {field_record, 1},
  [17] =
    {field_binder, 0},
  [18] =
    {field_identifier, 1, .inherited = true},
    {field_labels, 1, .inherited = true},
    {field_record, 1, .inherited = true},
  [21] =
    {field_left, 0},
    {field_right, 2},
    {field_value, 1},
  [24] =
    {field_lower, 0},
    {field_upper, 2},
  [26] =
    {field_association, 2},
    {field_attributes, 1},
    {field_identifier, 1, .inherited = true},
    {field_labels, 1, .inherited = true},
    {field_record, 1, .inherited = true},
  [31] =
    {field_identifier, 0},
    {field_labels, 1},
    {field_record, 2},
  [34] =
    {field_binder, 1},
    {field_key, 0},
    {field_value, 2},
  [37] =
    {field_key, 1},
    {field_value, 3},
  [39] =
    {field_binder, 1},
    {field_cardinality, 3},
    {field_key, 0},
    {field_value, 2},
  [43] =
    {field_identifier, 2, .inherited = true},
    {field_labels, 2, .inherited = true},
    {field_record, 2, .inherited = true},
};

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] = 12,
  [14] = 14,
  [15] = 15,
  [16] = 15,
  [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] = 34,
  [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] = 29,
  [59] = 59,
  [60] = 60,
  [61] = 61,
  [62] = 62,
  [63] = 63,
  [64] = 64,
  [65] = 65,
  [66] = 66,
  [67] = 67,
  [68] = 68,
  [69] = 69,
  [70] = 33,
  [71] = 71,
  [72] = 72,
  [73] = 73,
  [74] = 74,
  [75] = 39,
  [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] = 90,
  [91] = 91,
  [92] = 92,
  [93] = 93,
  [94] = 94,
  [95] = 95,
  [96] = 96,
  [97] = 97,
  [98] = 98,
  [99] = 99,
  [100] = 100,
  [101] = 101,
  [102] = 102,
  [103] = 103,
  [104] = 104,
  [105] = 105,
  [106] = 106,
  [107] = 107,
  [108] = 108,
  [109] = 109,
  [110] = 110,
  [111] = 111,
  [112] = 112,
  [113] = 113,
  [114] = 114,
  [115] = 115,
  [116] = 116,
  [117] = 117,
  [118] = 118,
  [119] = 44,
  [120] = 120,
  [121] = 121,
  [122] = 122,
  [123] = 123,
};

static TSCharacterRange sym_math_symbol_character_set_1[] = {
  {'^', '^'}, {0x3d0, 0x3d2}, {0x3d5, 0x3d5}, {0x3f0, 0x3f1}, {0x3f4, 0x3f5}, {0x2016, 0x2016}, {0x2032, 0x2034}, {0x2040, 0x2040},
  {0x2061, 0x2064}, {0x207d, 0x207e}, {0x208d, 0x208e}, {0x20d0, 0x20dc}, {0x20e1, 0x20e1}, {0x20e5, 0x20e6}, {0x20eb, 0x20ef}, {0x2102, 0x2102},
  {0x2107, 0x2107}, {0x210a, 0x2113}, {0x2115, 0x2115}, {0x2119, 0x211d}, {0x2124, 0x2124}, {0x2128, 0x2129}, {0x212c, 0x212d}, {0x212f, 0x2131},
  {0x2133, 0x2138}, {0x213c, 0x213f}, {0x2145, 0x2149}, {0x2195, 0x2199}, {0x219c, 0x219f}, {0x21a1, 0x21a2}, {0x21a4, 0x21a5}, {0x21a7, 0x21a7},
  {0x21a9, 0x21ad}, {0x21b0, 0x21b1}, {0x21b6, 0x21b7}, {0x21bc, 0x21cd}, {0x21d0, 0x21d1}, {0x21d3, 0x21d3}, {0x21d5, 0x21db}, {0x21dd, 0x21dd},
  {0x21e4, 0x21e5}, {0x2308, 0x230b}, {0x23b4, 0x23b5}, {0x23b7, 0x23b7}, {0x23d0, 0x23d0}, {0x23e2, 0x23e2}, {0x25a0, 0x25a1}, {0x25ae, 0x25b6},
  {0x25bc, 0x25c0}, {0x25c6, 0x25c7}, {0x25ca, 0x25cb}, {0x25cf, 0x25d3}, {0x25e2, 0x25e2}, {0x25e4, 0x25e4}, {0x25e7, 0x25ec}, {0x2605, 0x2606},
  {0x2640, 0x2640}, {0x2642, 0x2642}, {0x2660, 0x2663}, {0x266d, 0x266e}, {0x27c5, 0x27c6}, {0x27e6, 0x27ef}, {0x2983, 0x2998}, {0x29d8, 0x29db},
  {0x29fc, 0x29fd}, {0xfe61, 0xfe61}, {0xfe63, 0xfe63}, {0xfe68, 0xfe68}, {0xff3c, 0xff3c}, {0xff3e, 0xff3e}, {0x1d400, 0x1d454}, {0x1d456, 0x1d49c},
  {0x1d49e, 0x1d49f}, {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3}, {0x1d4c5, 0x1d505},
  {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e}, {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, {0x1d54a, 0x1d550},
  {0x1d552, 0x1d6a5}, {0x1d6a8, 0x1d6c0}, {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6fa}, {0x1d6fc, 0x1d714}, {0x1d716, 0x1d734}, {0x1d736, 0x1d74e}, {0x1d750, 0x1d76e},
  {0x1d770, 0x1d788}, {0x1d78a, 0x1d7a8}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7cb}, {0x1d7ce, 0x1d7ff}, {0x1ee00, 0x1ee03}, {0x1ee05, 0x1ee1f}, {0x1ee21, 0x1ee22},
  {0x1ee24, 0x1ee24}, {0x1ee27, 0x1ee27}, {0x1ee29, 0x1ee32}, {0x1ee34, 0x1ee37}, {0x1ee39, 0x1ee39}, {0x1ee3b, 0x1ee3b}, {0x1ee42, 0x1ee42}, {0x1ee47, 0x1ee47},
  {0x1ee49, 0x1ee49}, {0x1ee4b, 0x1ee4b}, {0x1ee4d, 0x1ee4f}, {0x1ee51, 0x1ee52}, {0x1ee54, 0x1ee54}, {0x1ee57, 0x1ee57}, {0x1ee59, 0x1ee59}, {0x1ee5b, 0x1ee5b},
  {0x1ee5d, 0x1ee5d}, {0x1ee5f, 0x1ee5f}, {0x1ee61, 0x1ee62}, {0x1ee64, 0x1ee64}, {0x1ee67, 0x1ee6a}, {0x1ee6c, 0x1ee72}, {0x1ee74, 0x1ee77}, {0x1ee79, 0x1ee7c},
  {0x1ee7e, 0x1ee7e}, {0x1ee80, 0x1ee89}, {0x1ee8b, 0x1ee9b}, {0x1eea1, 0x1eea3}, {0x1eea5, 0x1eea9}, {0x1eeab, 0x1eebb},
};

static bool ts_lex(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      if (eof) ADVANCE(20);
      ADVANCE_MAP(
        '!', 32,
        '"', 1,
        '\'', 3,
        '(', 25,
        ')', 26,
        '*', 34,
        '+', 35,
        ',', 21,
        '-', 62,
        '.', 6,
        '0', 43,
        ':', 28,
        '<', 5,
        '=', 65,
        '?', 33,
        '@', 24,
        '[', 22,
        ']', 23,
        '_', 37,
        '`', 7,
        '{', 30,
        '|', 27,
        '}', 31,
        '~', 68,
      );
      if ((0x2660 <= lookahead && lookahead <= 0x2663) ||
          lookahead == 0x266d ||
          lookahead == 0x266e) ADVANCE(39);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(0);
      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(44);
      if ((0x391 <= lookahead && lookahead <= 0x3a9) ||
          (0x3b1 <= lookahead && lookahead <= 0x3c9)) ADVANCE(38);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(36);
      if ((0x2650 <= lookahead && lookahead <= 0x26ff)) ADVANCE(40);
      if (set_contains(sym_math_symbol_character_set_1, 134, lookahead)) ADVANCE(39);
      END_STATE();
    case 1:
      if (lookahead == '"') ADVANCE(54);
      if (lookahead == '\\') ADVANCE(2);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(1);
      END_STATE();
    case 2:
      if (lookahead == '"') ADVANCE(55);
      if (lookahead == '\\') ADVANCE(2);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(1);
      END_STATE();
    case 3:
      if (lookahead == '\'') ADVANCE(52);
      if (lookahead == '\\') ADVANCE(4);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(3);
      END_STATE();
    case 4:
      if (lookahead == '\'') ADVANCE(53);
      if (lookahead == '\\') ADVANCE(4);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(3);
      END_STATE();
    case 5:
      if (lookahead == '-') ADVANCE(63);
      if (lookahead == '=') ADVANCE(66);
      if (lookahead == '~') ADVANCE(69);
      END_STATE();
    case 6:
      if (lookahead == '.') ADVANCE(41);
      END_STATE();
    case 7:
      if (lookahead == '\\') ADVANCE(8);
      if (lookahead == '`') ADVANCE(58);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(9);
      END_STATE();
    case 8:
      if (lookahead == '\\') ADVANCE(8);
      if (lookahead == '`') ADVANCE(57);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(9);
      END_STATE();
    case 9:
      if (lookahead == '\\') ADVANCE(8);
      if (lookahead == '`') ADVANCE(56);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(9);
      END_STATE();
    case 10:
      if (lookahead == '\\') ADVANCE(12);
      if (lookahead == '`') ADVANCE(17);
      if (lookahead != 0) ADVANCE(10);
      END_STATE();
    case 11:
      if (lookahead == '\\') ADVANCE(12);
      if (lookahead == '`') ADVANCE(16);
      if (lookahead != 0) ADVANCE(10);
      END_STATE();
    case 12:
      if (lookahead == '\\') ADVANCE(12);
      if (lookahead == '`') ADVANCE(11);
      if (lookahead != 0) ADVANCE(10);
      END_STATE();
    case 13:
      if (lookahead == '`') ADVANCE(14);
      if (lookahead == '.' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('@' <= lookahead && lookahead <= 'Z') ||
          ('_' <= lookahead && lookahead <= 'z')) ADVANCE(13);
      END_STATE();
    case 14:
      if (lookahead == '`') ADVANCE(59);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(14);
      END_STATE();
    case 15:
      if (lookahead == '`') ADVANCE(60);
      END_STATE();
    case 16:
      if (lookahead == '`') ADVANCE(61);
      END_STATE();
    case 17:
      if (lookahead == '`') ADVANCE(15);
      END_STATE();
    case 18:
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ') SKIP(18);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(37);
      END_STATE();
    case 19:
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(46);
      END_STATE();
    case 20:
      ACCEPT_TOKEN(ts_builtin_sym_end);
      END_STATE();
    case 21:
      ACCEPT_TOKEN(anon_sym_COMMA);
      END_STATE();
    case 22:
      ACCEPT_TOKEN(anon_sym_LBRACK);
      END_STATE();
    case 23:
      ACCEPT_TOKEN(anon_sym_RBRACK);
      END_STATE();
    case 24:
      ACCEPT_TOKEN(anon_sym_AT);
      if (lookahead == '`') ADVANCE(14);
      if (lookahead == '.' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('@' <= lookahead && lookahead <= 'Z') ||
          ('_' <= lookahead && lookahead <= 'z')) ADVANCE(13);
      END_STATE();
    case 25:
      ACCEPT_TOKEN(anon_sym_LPAREN);
      END_STATE();
    case 26:
      ACCEPT_TOKEN(anon_sym_RPAREN);
      END_STATE();
    case 27:
      ACCEPT_TOKEN(anon_sym_PIPE);
      END_STATE();
    case 28:
      ACCEPT_TOKEN(anon_sym_COLON);
      if (lookahead == ':') ADVANCE(29);
      END_STATE();
    case 29:
      ACCEPT_TOKEN(anon_sym_COLON_COLON);
      END_STATE();
    case 30:
      ACCEPT_TOKEN(anon_sym_LBRACE);
      END_STATE();
    case 31:
      ACCEPT_TOKEN(anon_sym_RBRACE);
      END_STATE();
    case 32:
      ACCEPT_TOKEN(anon_sym_BANG);
      END_STATE();
    case 33:
      ACCEPT_TOKEN(anon_sym_QMARK);
      END_STATE();
    case 34:
      ACCEPT_TOKEN(anon_sym_STAR);
      END_STATE();
    case 35:
      ACCEPT_TOKEN(anon_sym_PLUS);
      END_STATE();
    case 36:
      ACCEPT_TOKEN(sym_symbol);
      if (lookahead == '-') ADVANCE(37);
      if (lookahead == '`') ADVANCE(14);
      if (lookahead == '.' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('@' <= lookahead && lookahead <= 'Z') ||
          ('_' <= lookahead && lookahead <= 'z')) ADVANCE(36);
      END_STATE();
    case 37:
      ACCEPT_TOKEN(sym_symbol);
      if (lookahead == '-' ||
          lookahead == '.' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('@' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(37);
      END_STATE();
    case 38:
      ACCEPT_TOKEN(sym_greek);
      END_STATE();
    case 39:
      ACCEPT_TOKEN(sym_math_symbol);
      END_STATE();
    case 40:
      ACCEPT_TOKEN(sym_pictograph);
      END_STATE();
    case 41:
      ACCEPT_TOKEN(anon_sym_DOT_DOT);
      if (lookahead == '.') ADVANCE(42);
      END_STATE();
    case 42:
      ACCEPT_TOKEN(anon_sym_DOT_DOT_DOT);
      END_STATE();
    case 43:
      ACCEPT_TOKEN(sym_integer);
      if (lookahead == '.') ADVANCE(19);
      if (lookahead == 'x') ADVANCE(50);
      if (('0' <= lookahead && lookahead <= '7')) ADVANCE(49);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(51);
      END_STATE();
    case 44:
      ACCEPT_TOKEN(sym_integer);
      if (lookahead == '.') ADVANCE(19);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(44);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(51);
      END_STATE();
    case 45:
      ACCEPT_TOKEN(sym_integer);
      if (lookahead == '.') ADVANCE(19);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(51);
      END_STATE();
    case 46:
      ACCEPT_TOKEN(sym_decimal);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(46);
      END_STATE();
    case 47:
      ACCEPT_TOKEN(sym_hexadecimal);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(48);
      if (('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(47);
      if (('G' <= lookahead && lookahead <= 'Z') ||
          ('g' <= lookahead && lookahead <= 'z')) ADVANCE(51);
      END_STATE();
    case 48:
      ACCEPT_TOKEN(sym_hexadecimal);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(48);
      END_STATE();
    case 49:
      ACCEPT_TOKEN(sym_octal);
      if (('0' <= lookahead && lookahead <= '7')) ADVANCE(49);
      END_STATE();
    case 50:
      ACCEPT_TOKEN(sym_measurement);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(48);
      if (('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(47);
      if (('G' <= lookahead && lookahead <= 'Z') ||
          ('g' <= lookahead && lookahead <= 'z')) ADVANCE(51);
      END_STATE();
    case 51:
      ACCEPT_TOKEN(sym_measurement);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(51);
      END_STATE();
    case 52:
      ACCEPT_TOKEN(sym_single_quoted_string);
      END_STATE();
    case 53:
      ACCEPT_TOKEN(sym_single_quoted_string);
      if (lookahead == '\'') ADVANCE(52);
      if (lookahead == '\\') ADVANCE(4);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(3);
      END_STATE();
    case 54:
      ACCEPT_TOKEN(sym_double_quoted_string);
      END_STATE();
    case 55:
      ACCEPT_TOKEN(sym_double_quoted_string);
      if (lookahead == '"') ADVANCE(54);
      if (lookahead == '\\') ADVANCE(2);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(1);
      END_STATE();
    case 56:
      ACCEPT_TOKEN(sym_backticked_string);
      END_STATE();
    case 57:
      ACCEPT_TOKEN(sym_backticked_string);
      if (lookahead == '\\') ADVANCE(8);
      if (lookahead == '`') ADVANCE(56);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(9);
      END_STATE();
    case 58:
      ACCEPT_TOKEN(sym_backticked_string);
      if (lookahead == '`') ADVANCE(10);
      END_STATE();
    case 59:
      ACCEPT_TOKEN(sym_tagged_string);
      END_STATE();
    case 60:
      ACCEPT_TOKEN(sym_fenced_string);
      END_STATE();
    case 61:
      ACCEPT_TOKEN(sym_fenced_string);
      if (lookahead == '`') ADVANCE(60);
      END_STATE();
    case 62:
      ACCEPT_TOKEN(anon_sym_DASH);
      if (lookahead == '0') ADVANCE(45);
      if (lookahead == '>') ADVANCE(64);
      if (('1' <= lookahead && lookahead <= '9')) ADVANCE(44);
      END_STATE();
    case 63:
      ACCEPT_TOKEN(anon_sym_LT_DASH);
      END_STATE();
    case 64:
      ACCEPT_TOKEN(anon_sym_DASH_GT);
      END_STATE();
    case 65:
      ACCEPT_TOKEN(anon_sym_EQ);
      if (lookahead == '>') ADVANCE(67);
      END_STATE();
    case 66:
      ACCEPT_TOKEN(anon_sym_LT_EQ);
      END_STATE();
    case 67:
      ACCEPT_TOKEN(anon_sym_EQ_GT);
      END_STATE();
    case 68:
      ACCEPT_TOKEN(anon_sym_TILDE);
      if (lookahead == '>') ADVANCE(70);
      END_STATE();
    case 69:
      ACCEPT_TOKEN(anon_sym_LT_TILDE);
      END_STATE();
    case 70:
      ACCEPT_TOKEN(anon_sym_TILDE_GT);
      END_STATE();
    default:
      return false;
  }
}

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

static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
  [0] = {
    [ts_builtin_sym_end] = ACTIONS(1),
    [anon_sym_COMMA] = ACTIONS(1),
    [anon_sym_LBRACK] = ACTIONS(1),
    [anon_sym_RBRACK] = ACTIONS(1),
    [anon_sym_AT] = ACTIONS(1),
    [anon_sym_LPAREN] = ACTIONS(1),
    [anon_sym_RPAREN] = ACTIONS(1),
    [anon_sym_PIPE] = ACTIONS(1),
    [anon_sym_COLON] = ACTIONS(1),
    [anon_sym_COLON_COLON] = ACTIONS(1),
    [anon_sym_LBRACE] = ACTIONS(1),
    [anon_sym_RBRACE] = ACTIONS(1),
    [anon_sym_BANG] = ACTIONS(1),
    [anon_sym_QMARK] = ACTIONS(1),
    [anon_sym_STAR] = ACTIONS(1),
    [anon_sym_PLUS] = ACTIONS(1),
    [sym_symbol] = ACTIONS(1),
    [sym_greek] = ACTIONS(1),
    [sym_math_symbol] = ACTIONS(1),
    [sym_pictograph] = ACTIONS(1),
    [anon_sym_DOT_DOT] = ACTIONS(1),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(1),
    [sym_integer] = ACTIONS(1),
    [sym_decimal] = ACTIONS(1),
    [sym_hexadecimal] = ACTIONS(1),
    [sym_octal] = ACTIONS(1),
    [sym_measurement] = ACTIONS(1),
    [sym_single_quoted_string] = ACTIONS(1),
    [sym_double_quoted_string] = ACTIONS(1),
    [sym_backticked_string] = ACTIONS(1),
    [sym_tagged_string] = ACTIONS(1),
    [sym_fenced_string] = ACTIONS(1),
    [anon_sym_DASH] = ACTIONS(1),
    [anon_sym_LT_DASH] = ACTIONS(1),
    [anon_sym_DASH_GT] = ACTIONS(1),
    [anon_sym_EQ] = ACTIONS(1),
    [anon_sym_LT_EQ] = ACTIONS(1),
    [anon_sym_EQ_GT] = ACTIONS(1),
    [anon_sym_TILDE] = ACTIONS(1),
    [anon_sym_LT_TILDE] = ACTIONS(1),
    [anon_sym_TILDE_GT] = ACTIONS(1),
  },
  [1] = {
    [sym_gram] = STATE(121),
    [sym_pattern] = STATE(6),
    [sym_pattern_element] = STATE(33),
    [sym_subject] = STATE(28),
    [sym_annotation] = STATE(15),
    [sym__path] = STATE(28),
    [sym_node] = STATE(2),
    [sym_relationship] = STATE(28),
    [sym__reference] = STATE(28),
    [sym__value] = STATE(28),
    [sym_record] = STATE(5),
    [sym_range] = STATE(28),
    [sym__numeric_literal] = STATE(34),
    [sym__string_literal] = STATE(28),
    [aux_sym_gram_repeat1] = STATE(6),
    [aux_sym_pattern_element_repeat1] = STATE(15),
    [ts_builtin_sym_end] = ACTIONS(3),
    [anon_sym_LBRACK] = ACTIONS(5),
    [anon_sym_AT] = ACTIONS(7),
    [anon_sym_LPAREN] = ACTIONS(9),
    [anon_sym_LBRACE] = ACTIONS(11),
    [sym_symbol] = ACTIONS(13),
    [sym_greek] = ACTIONS(15),
    [sym_math_symbol] = ACTIONS(15),
    [sym_pictograph] = ACTIONS(13),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(17),
    [sym_integer] = ACTIONS(19),
    [sym_decimal] = ACTIONS(21),
    [sym_hexadecimal] = ACTIONS(19),
    [sym_octal] = ACTIONS(21),
    [sym_measurement] = ACTIONS(19),
    [sym_single_quoted_string] = ACTIONS(15),
    [sym_double_quoted_string] = ACTIONS(15),
    [sym_backticked_string] = ACTIONS(13),
    [sym_tagged_string] = ACTIONS(15),
    [sym_fenced_string] = ACTIONS(15),
  },
};

static const uint16_t ts_small_parse_table[] = {
  [0] = 9,
    ACTIONS(27), 1,
      anon_sym_DASH,
    ACTIONS(29), 1,
      anon_sym_LT_DASH,
    ACTIONS(31), 1,
      anon_sym_EQ,
    ACTIONS(33), 1,
      anon_sym_LT_EQ,
    ACTIONS(35), 1,
      anon_sym_TILDE,
    ACTIONS(37), 1,
      anon_sym_LT_TILDE,
    ACTIONS(25), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    STATE(57), 13,
      sym__relationship_value,
      sym_single_undirected,
      sym_single_bidirectional,
      sym_single_right,
      sym_single_left,
      sym_double_undirected,
      sym_double_bidirectional,
      sym_double_right,
      sym_double_left,
      sym_squiggle_undirected,
      sym_squiggle_bidirectional,
      sym_squiggle_right,
      sym_squiggle_left,
    ACTIONS(23), 14,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [59] = 15,
    ACTIONS(5), 1,
      anon_sym_LBRACK,
    ACTIONS(7), 1,
      anon_sym_AT,
    ACTIONS(9), 1,
      anon_sym_LPAREN,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(39), 1,
      ts_builtin_sym_end,
    STATE(2), 1,
      sym_node,
    STATE(33), 1,
      sym_pattern_element,
    STATE(34), 1,
      sym__numeric_literal,
    ACTIONS(21), 2,
      sym_decimal,
      sym_octal,
    STATE(4), 2,
      sym_pattern,
      aux_sym_gram_repeat1,
    STATE(15), 2,
      sym_annotation,
      aux_sym_pattern_element_repeat1,
    ACTIONS(13), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(19), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    ACTIONS(15), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
    STATE(28), 7,
      sym_subject,
      sym__path,
      sym_relationship,
      sym__reference,
      sym__value,
      sym_range,
      sym__string_literal,
  [123] = 15,
    ACTIONS(41), 1,
      ts_builtin_sym_end,
    ACTIONS(43), 1,
      anon_sym_LBRACK,
    ACTIONS(46), 1,
      anon_sym_AT,
    ACTIONS(49), 1,
      anon_sym_LPAREN,
    ACTIONS(58), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(2), 1,
      sym_node,
    STATE(33), 1,
      sym_pattern_element,
    STATE(34), 1,
      sym__numeric_literal,
    ACTIONS(64), 2,
      sym_decimal,
      sym_octal,
    STATE(4), 2,
      sym_pattern,
      aux_sym_gram_repeat1,
    STATE(15), 2,
      sym_annotation,
      aux_sym_pattern_element_repeat1,
    ACTIONS(52), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(61), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    ACTIONS(55), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
    STATE(28), 7,
      sym_subject,
      sym__path,
      sym_relationship,
      sym__reference,
      sym__value,
      sym_range,
      sym__string_literal,
  [187] = 15,
    ACTIONS(5), 1,
      anon_sym_LBRACK,
    ACTIONS(7), 1,
      anon_sym_AT,
    ACTIONS(9), 1,
      anon_sym_LPAREN,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(67), 1,
      ts_builtin_sym_end,
    STATE(2), 1,
      sym_node,
    STATE(33), 1,
      sym_pattern_element,
    STATE(34), 1,
      sym__numeric_literal,
    ACTIONS(21), 2,
      sym_decimal,
      sym_octal,
    STATE(3), 2,
      sym_pattern,
      aux_sym_gram_repeat1,
    STATE(15), 2,
      sym_annotation,
      aux_sym_pattern_element_repeat1,
    ACTIONS(13), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(19), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    ACTIONS(15), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
    STATE(28), 7,
      sym_subject,
      sym__path,
      sym_relationship,
      sym__reference,
      sym__value,
      sym_range,
      sym__string_literal,
  [251] = 15,
    ACTIONS(5), 1,
      anon_sym_LBRACK,
    ACTIONS(7), 1,
      anon_sym_AT,
    ACTIONS(9), 1,
      anon_sym_LPAREN,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(69), 1,
      ts_builtin_sym_end,
    STATE(2), 1,
      sym_node,
    STATE(33), 1,
      sym_pattern_element,
    STATE(34), 1,
      sym__numeric_literal,
    ACTIONS(21), 2,
      sym_decimal,
      sym_octal,
    STATE(4), 2,
      sym_pattern,
      aux_sym_gram_repeat1,
    STATE(15), 2,
      sym_annotation,
      aux_sym_pattern_element_repeat1,
    ACTIONS(13), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(19), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    ACTIONS(15), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
    STATE(28), 7,
      sym_subject,
      sym__path,
      sym_relationship,
      sym__reference,
      sym__value,
      sym_range,
      sym__string_literal,
  [315] = 18,
    ACTIONS(11), 1,
      anon_sym_LBRACE,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(71), 1,
      anon_sym_RBRACK,
    ACTIONS(73), 1,
      anon_sym_PIPE,
    ACTIONS(75), 1,
      anon_sym_COLON,
    ACTIONS(77), 1,
      anon_sym_COLON_COLON,
    STATE(45), 1,
      sym__numeric_literal,
    STATE(56), 1,
      sym_labels,
    STATE(59), 1,
      sym_record,
    STATE(71), 1,
      sym__attributes,
    STATE(102), 1,
      sym__association,
    STATE(120), 1,
      sym_binder,
    ACTIONS(85), 2,
      sym_decimal,
      sym_octal,
    STATE(49), 2,
      sym_label,
      aux_sym_labels_repeat1,
    ACTIONS(79), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(83), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    STATE(46), 3,
      sym__value,
      sym_range,
      sym__string_literal,
    ACTIONS(81), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [383] = 14,
    ACTIONS(5), 1,
      anon_sym_LBRACK,
    ACTIONS(7), 1,
      anon_sym_AT,
    ACTIONS(9), 1,
      anon_sym_LPAREN,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(2), 1,
      sym_node,
    STATE(45), 1,
      sym__numeric_literal,
    STATE(70), 1,
      sym_pattern_element,
    STATE(89), 1,
      sym_pattern,
    ACTIONS(85), 2,
      sym_decimal,
      sym_octal,
    STATE(16), 2,
      sym_annotation,
      aux_sym_pattern_element_repeat1,
    ACTIONS(13), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(83), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    ACTIONS(15), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
    STATE(28), 7,
      sym_subject,
      sym__path,
      sym_relationship,
      sym__reference,
      sym__value,
      sym_range,
      sym__string_literal,
  [443] = 2,
    ACTIONS(89), 8,
      anon_sym_AT,
      anon_sym_COLON,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(87), 23,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_PIPE,
      anon_sym_COLON_COLON,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_BANG,
      anon_sym_QMARK,
      anon_sym_STAR,
      anon_sym_PLUS,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [479] = 2,
    ACTIONS(93), 8,
      anon_sym_AT,
      anon_sym_COLON,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(91), 23,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_PIPE,
      anon_sym_COLON_COLON,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_BANG,
      anon_sym_QMARK,
      anon_sym_STAR,
      anon_sym_PLUS,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [515] = 2,
    ACTIONS(97), 8,
      anon_sym_AT,
      anon_sym_COLON,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(95), 23,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_PIPE,
      anon_sym_COLON_COLON,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_BANG,
      anon_sym_QMARK,
      anon_sym_STAR,
      anon_sym_PLUS,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [551] = 13,
    ACTIONS(5), 1,
      anon_sym_LBRACK,
    ACTIONS(7), 1,
      anon_sym_AT,
    ACTIONS(9), 1,
      anon_sym_LPAREN,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(2), 1,
      sym_node,
    STATE(34), 1,
      sym__numeric_literal,
    STATE(35), 1,
      sym_pattern_element,
    ACTIONS(21), 2,
      sym_decimal,
      sym_octal,
    STATE(15), 2,
      sym_annotation,
      aux_sym_pattern_element_repeat1,
    ACTIONS(13), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(19), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    ACTIONS(15), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
    STATE(28), 7,
      sym_subject,
      sym__path,
      sym_relationship,
      sym__reference,
      sym__value,
      sym_range,
      sym__string_literal,
  [608] = 13,
    ACTIONS(5), 1,
      anon_sym_LBRACK,
    ACTIONS(7), 1,
      anon_sym_AT,
    ACTIONS(9), 1,
      anon_sym_LPAREN,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(2), 1,
      sym_node,
    STATE(35), 1,
      sym_pattern_element,
    STATE(45), 1,
      sym__numeric_literal,
    ACTIONS(85), 2,
      sym_decimal,
      sym_octal,
    STATE(16), 2,
      sym_annotation,
      aux_sym_pattern_element_repeat1,
    ACTIONS(13), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(83), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    ACTIONS(15), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
    STATE(28), 7,
      sym_subject,
      sym__path,
      sym_relationship,
      sym__reference,
      sym__value,
      sym_range,
      sym__string_literal,
  [665] = 16,
    ACTIONS(11), 1,
      anon_sym_LBRACE,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(75), 1,
      anon_sym_COLON,
    ACTIONS(77), 1,
      anon_sym_COLON_COLON,
    ACTIONS(99), 1,
      anon_sym_RPAREN,
    STATE(45), 1,
      sym__numeric_literal,
    STATE(56), 1,
      sym_labels,
    STATE(59), 1,
      sym_record,
    STATE(86), 1,
      sym__attributes,
    STATE(120), 1,
      sym_binder,
    ACTIONS(85), 2,
      sym_decimal,
      sym_octal,
    STATE(49), 2,
      sym_label,
      aux_sym_labels_repeat1,
    ACTIONS(79), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(83), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    STATE(46), 3,
      sym__value,
      sym_range,
      sym__string_literal,
    ACTIONS(81), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [727] = 12,
    ACTIONS(5), 1,
      anon_sym_LBRACK,
    ACTIONS(7), 1,
      anon_sym_AT,
    ACTIONS(9), 1,
      anon_sym_LPAREN,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(2), 1,
      sym_node,
    STATE(34), 1,
      sym__numeric_literal,
    ACTIONS(21), 2,
      sym_decimal,
      sym_octal,
    STATE(40), 2,
      sym_annotation,
      aux_sym_pattern_element_repeat1,
    ACTIONS(19), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    ACTIONS(101), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(103), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
    STATE(30), 7,
      sym_subject,
      sym__path,
      sym_relationship,
      sym__reference,
      sym__value,
      sym_range,
      sym__string_literal,
  [781] = 12,
    ACTIONS(5), 1,
      anon_sym_LBRACK,
    ACTIONS(7), 1,
      anon_sym_AT,
    ACTIONS(9), 1,
      anon_sym_LPAREN,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(2), 1,
      sym_node,
    STATE(45), 1,
      sym__numeric_literal,
    ACTIONS(85), 2,
      sym_decimal,
      sym_octal,
    STATE(40), 2,
      sym_annotation,
      aux_sym_pattern_element_repeat1,
    ACTIONS(83), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    ACTIONS(101), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(103), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
    STATE(30), 7,
      sym_subject,
      sym__path,
      sym_relationship,
      sym__reference,
      sym__value,
      sym_range,
      sym__string_literal,
  [835] = 15,
    ACTIONS(11), 1,
      anon_sym_LBRACE,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(75), 1,
      anon_sym_COLON,
    ACTIONS(77), 1,
      anon_sym_COLON_COLON,
    STATE(45), 1,
      sym__numeric_literal,
    STATE(56), 1,
      sym_labels,
    STATE(59), 1,
      sym_record,
    STATE(90), 1,
      sym__attributes,
    STATE(120), 1,
      sym_binder,
    ACTIONS(85), 2,
      sym_decimal,
      sym_octal,
    STATE(49), 2,
      sym_label,
      aux_sym_labels_repeat1,
    ACTIONS(79), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(83), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    STATE(46), 3,
      sym__value,
      sym_range,
      sym__string_literal,
    ACTIONS(81), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [894] = 15,
    ACTIONS(11), 1,
      anon_sym_LBRACE,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(75), 1,
      anon_sym_COLON,
    ACTIONS(77), 1,
      anon_sym_COLON_COLON,
    STATE(45), 1,
      sym__numeric_literal,
    STATE(56), 1,
      sym_labels,
    STATE(59), 1,
      sym_record,
    STATE(93), 1,
      sym__attributes,
    STATE(120), 1,
      sym_binder,
    ACTIONS(85), 2,
      sym_decimal,
      sym_octal,
    STATE(49), 2,
      sym_label,
      aux_sym_labels_repeat1,
    ACTIONS(79), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(83), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    STATE(46), 3,
      sym__value,
      sym_range,
      sym__string_literal,
    ACTIONS(81), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [953] = 15,
    ACTIONS(11), 1,
      anon_sym_LBRACE,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(75), 1,
      anon_sym_COLON,
    ACTIONS(77), 1,
      anon_sym_COLON_COLON,
    STATE(45), 1,
      sym__numeric_literal,
    STATE(56), 1,
      sym_labels,
    STATE(59), 1,
      sym_record,
    STATE(95), 1,
      sym__attributes,
    STATE(120), 1,
      sym_binder,
    ACTIONS(85), 2,
      sym_decimal,
      sym_octal,
    STATE(49), 2,
      sym_label,
      aux_sym_labels_repeat1,
    ACTIONS(79), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(83), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    STATE(46), 3,
      sym__value,
      sym_range,
      sym__string_literal,
    ACTIONS(81), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1012] = 15,
    ACTIONS(11), 1,
      anon_sym_LBRACE,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(75), 1,
      anon_sym_COLON,
    ACTIONS(77), 1,
      anon_sym_COLON_COLON,
    STATE(45), 1,
      sym__numeric_literal,
    STATE(56), 1,
      sym_labels,
    STATE(59), 1,
      sym_record,
    STATE(91), 1,
      sym__attributes,
    STATE(120), 1,
      sym_binder,
    ACTIONS(85), 2,
      sym_decimal,
      sym_octal,
    STATE(49), 2,
      sym_label,
      aux_sym_labels_repeat1,
    ACTIONS(79), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(83), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    STATE(46), 3,
      sym__value,
      sym_range,
      sym__string_literal,
    ACTIONS(81), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1071] = 15,
    ACTIONS(11), 1,
      anon_sym_LBRACE,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(75), 1,
      anon_sym_COLON,
    ACTIONS(77), 1,
      anon_sym_COLON_COLON,
    STATE(45), 1,
      sym__numeric_literal,
    STATE(56), 1,
      sym_labels,
    STATE(59), 1,
      sym_record,
    STATE(92), 1,
      sym__attributes,
    STATE(120), 1,
      sym_binder,
    ACTIONS(85), 2,
      sym_decimal,
      sym_octal,
    STATE(49), 2,
      sym_label,
      aux_sym_labels_repeat1,
    ACTIONS(79), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(83), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    STATE(46), 3,
      sym__value,
      sym_range,
      sym__string_literal,
    ACTIONS(81), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1130] = 15,
    ACTIONS(11), 1,
      anon_sym_LBRACE,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(75), 1,
      anon_sym_COLON,
    ACTIONS(77), 1,
      anon_sym_COLON_COLON,
    STATE(45), 1,
      sym__numeric_literal,
    STATE(56), 1,
      sym_labels,
    STATE(59), 1,
      sym_record,
    STATE(94), 1,
      sym__attributes,
    STATE(120), 1,
      sym_binder,
    ACTIONS(85), 2,
      sym_decimal,
      sym_octal,
    STATE(49), 2,
      sym_label,
      aux_sym_labels_repeat1,
    ACTIONS(79), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    ACTIONS(83), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    STATE(46), 3,
      sym__value,
      sym_range,
      sym__string_literal,
    ACTIONS(81), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1189] = 2,
    ACTIONS(107), 8,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
      anon_sym_DASH,
    ACTIONS(105), 19,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
      anon_sym_LT_DASH,
      anon_sym_EQ,
      anon_sym_LT_EQ,
      anon_sym_TILDE,
      anon_sym_LT_TILDE,
  [1221] = 2,
    ACTIONS(111), 8,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
      anon_sym_DASH,
    ACTIONS(109), 19,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
      anon_sym_LT_DASH,
      anon_sym_EQ,
      anon_sym_LT_EQ,
      anon_sym_TILDE,
      anon_sym_LT_TILDE,
  [1253] = 2,
    ACTIONS(115), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(113), 15,
      ts_builtin_sym_end,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_PIPE,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1280] = 2,
    ACTIONS(119), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(117), 15,
      ts_builtin_sym_end,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_PIPE,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1307] = 2,
    ACTIONS(123), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(121), 15,
      ts_builtin_sym_end,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_PIPE,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1334] = 2,
    ACTIONS(127), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(125), 14,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1360] = 4,
    ACTIONS(131), 1,
      anon_sym_COMMA,
    STATE(39), 1,
      aux_sym_pattern_repeat1,
    ACTIONS(133), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(129), 12,
      ts_builtin_sym_end,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1390] = 2,
    ACTIONS(137), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(135), 14,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1416] = 2,
    ACTIONS(141), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(139), 14,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1442] = 2,
    ACTIONS(145), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(143), 14,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1468] = 4,
    ACTIONS(131), 1,
      anon_sym_COMMA,
    STATE(29), 1,
      aux_sym_pattern_repeat1,
    ACTIONS(149), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(147), 12,
      ts_builtin_sym_end,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1498] = 3,
    ACTIONS(155), 1,
      anon_sym_DOT_DOT,
    ACTIONS(153), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(151), 13,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1526] = 2,
    ACTIONS(159), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(157), 14,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1552] = 2,
    ACTIONS(163), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(161), 14,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1578] = 2,
    ACTIONS(167), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(165), 14,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1604] = 2,
    ACTIONS(171), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(169), 14,
      ts_builtin_sym_end,
      anon_sym_COMMA,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1630] = 4,
    ACTIONS(173), 1,
      anon_sym_COMMA,
    STATE(39), 1,
      aux_sym_pattern_repeat1,
    ACTIONS(159), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(157), 12,
      ts_builtin_sym_end,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1660] = 4,
    ACTIONS(178), 1,
      anon_sym_AT,
    STATE(40), 2,
      sym_annotation,
      aux_sym_pattern_element_repeat1,
    ACTIONS(181), 6,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(176), 11,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1689] = 7,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(45), 1,
      sym__numeric_literal,
    ACTIONS(85), 2,
      sym_decimal,
      sym_octal,
    ACTIONS(83), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    ACTIONS(183), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    STATE(85), 3,
      sym__value,
      sym_range,
      sym__string_literal,
    ACTIONS(185), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1723] = 7,
    ACTIONS(17), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(45), 1,
      sym__numeric_literal,
    ACTIONS(85), 2,
      sym_decimal,
      sym_octal,
    ACTIONS(83), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
    ACTIONS(187), 3,
      sym_symbol,
      sym_pictograph,
      sym_backticked_string,
    STATE(52), 3,
      sym__value,
      sym_range,
      sym__string_literal,
    ACTIONS(189), 6,
      sym_greek,
      sym_math_symbol,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1757] = 2,
    ACTIONS(193), 7,
      anon_sym_AT,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(191), 11,
      anon_sym_LBRACK,
      anon_sym_LPAREN,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1780] = 2,
    ACTIONS(195), 6,
      sym_symbol,
      sym_pictograph,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
      sym_backticked_string,
    ACTIONS(197), 9,
      sym_greek,
      sym_math_symbol,
      anon_sym_DOT_DOT_DOT,
      sym_decimal,
      sym_octal,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1800] = 4,
    ACTIONS(153), 1,
      anon_sym_COLON,
    ACTIONS(155), 1,
      anon_sym_DOT_DOT,
    ACTIONS(199), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(151), 11,
      anon_sym_COMMA,
      anon_sym_RBRACK,
      anon_sym_RPAREN,
      anon_sym_PIPE,
      anon_sym_COLON_COLON,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_BANG,
      anon_sym_QMARK,
      anon_sym_STAR,
      anon_sym_PLUS,
  [1823] = 8,
    ACTIONS(11), 1,
      anon_sym_LBRACE,
    ACTIONS(75), 1,
      anon_sym_COLON,
    ACTIONS(77), 1,
      anon_sym_COLON_COLON,
    STATE(55), 1,
      sym_labels,
    STATE(74), 1,
      sym_record,
    STATE(120), 1,
      sym_binder,
    STATE(49), 2,
      sym_label,
      aux_sym_labels_repeat1,
    ACTIONS(201), 3,
      anon_sym_RBRACK,
      anon_sym_RPAREN,
      anon_sym_PIPE,
  [1851] = 5,
    ACTIONS(203), 1,
      anon_sym_RBRACE,
    STATE(60), 1,
      sym_property,
    ACTIONS(205), 2,
      sym_symbol,
      sym_backticked_string,
    STATE(73), 2,
      sym__key,
      sym__string_literal,
    ACTIONS(207), 4,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1872] = 4,
    STATE(76), 1,
      sym_property,
    ACTIONS(205), 2,
      sym_symbol,
      sym_backticked_string,
    STATE(73), 2,
      sym__key,
      sym__string_literal,
    ACTIONS(207), 4,
      sym_single_quoted_string,
      sym_double_quoted_string,
      sym_tagged_string,
      sym_fenced_string,
  [1890] = 5,
    ACTIONS(75), 1,
      anon_sym_COLON,
    ACTIONS(77), 1,
      anon_sym_COLON_COLON,
    STATE(120), 1,
      sym_binder,
    STATE(50), 2,
      sym_label,
      aux_sym_labels_repeat1,
    ACTIONS(209), 4,
      anon_sym_RBRACK,
      anon_sym_RPAREN,
      anon_sym_PIPE,
      anon_sym_LBRACE,
  [1910] = 5,
    ACTIONS(213), 1,
      anon_sym_COLON,
    ACTIONS(216), 1,
      anon_sym_COLON_COLON,
    STATE(120), 1,
      sym_binder,
    STATE(50), 2,
      sym_label,
      aux_sym_labels_repeat1,
    ACTIONS(211), 4,
      anon_sym_RBRACK,
      anon_sym_RPAREN,
      anon_sym_PIPE,
      anon_sym_LBRACE,
  [1930] = 3,
    STATE(11), 1,
      sym__numeric_literal,
    ACTIONS(221), 2,
      sym_decimal,
      sym_octal,
    ACTIONS(219), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
  [1943] = 2,
    ACTIONS(223), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
    ACTIONS(225), 4,
      anon_sym_BANG,
      anon_sym_QMARK,
      anon_sym_STAR,
      anon_sym_PLUS,
  [1954] = 2,
    ACTIONS(229), 1,
      anon_sym_COLON,
    ACTIONS(227), 5,
      anon_sym_RBRACK,
      anon_sym_RPAREN,
      anon_sym_PIPE,
      anon_sym_COLON_COLON,
      anon_sym_LBRACE,
  [1965] = 3,
    STATE(9), 1,
      sym__numeric_literal,
    ACTIONS(233), 2,
      sym_decimal,
      sym_octal,
    ACTIONS(231), 3,
      sym_integer,
      sym_hexadecimal,
      sym_measurement,
  [1978] = 3,
    ACTIONS(11), 1,
      anon_sym_LBRACE,
    STATE(65), 1,
      sym_record,
    ACTIONS(235), 3,
      anon_sym_RBRACK,
      anon_sym_RPAREN,
      anon_sym_PIPE,
  [1990] = 3,
    ACTIONS(11), 1,
      anon_sym_LBRACE,
    STATE(72), 1,
      sym_record,
    ACTIONS(237), 3,
      anon_sym_RBRACK,
      anon_sym_RPAREN,
      anon_sym_PIPE,
  [2002] = 3,
    ACTIONS(9), 1,
      anon_sym_LPAREN,
    STATE(2), 1,
      sym_node,
    STATE(36), 2,
      sym__path,
      sym_relationship,
  [2013] = 3,
    ACTIONS(129), 1,
      anon_sym_RBRACK,
    ACTIONS(239), 1,
      anon_sym_COMMA,
    STATE(75), 1,
      aux_sym_pattern_repeat1,
  [2023] = 1,
    ACTIONS(241), 3,
      anon_sym_RBRACK,
      anon_sym_RPAREN,
      anon_sym_PIPE,
  [2029] = 3,
    ACTIONS(243), 1,
      anon_sym_COMMA,
    ACTIONS(245), 1,
      anon_sym_RBRACE,
    STATE(66), 1,
      aux_sym_record_repeat1,
  [2039] = 3,
    ACTIONS(247), 1,
      anon_sym_LBRACK,
    ACTIONS(249), 1,
      anon_sym_DASH,
    ACTIONS(251), 1,
      anon_sym_DASH_GT,
  [2049] = 3,
    ACTIONS(253), 1,
      anon_sym_LBRACK,
    ACTIONS(255), 1,
      anon_sym_DASH,
    ACTIONS(257), 1,
      anon_sym_DASH_GT,
  [2059] = 3,
    ACTIONS(259), 1,
      anon_sym_LBRACK,
    ACTIONS(261), 1,
      anon_sym_EQ,
    ACTIONS(263), 1,
      anon_sym_EQ_GT,
  [2069] = 3,
    ACTIONS(265), 1,
      anon_sym_LBRACK,
    ACTIONS(267), 1,
      anon_sym_EQ,
    ACTIONS(269), 1,
      anon_sym_EQ_GT,
  [2079] = 1,
    ACTIONS(271), 3,
      anon_sym_RBRACK,
      anon_sym_RPAREN,
      anon_sym_PIPE,
  [2085] = 3,
    ACTIONS(243), 1,
      anon_sym_COMMA,
    ACTIONS(273), 1,
      anon_sym_RBRACE,
    STATE(67), 1,
      aux_sym_record_repeat1,
  [2095] = 3,
    ACTIONS(275), 1,
      anon_sym_COMMA,
    ACTIONS(278), 1,
      anon_sym_RBRACE,
    STATE(67), 1,
      aux_sym_record_repeat1,
  [2105] = 3,
    ACTIONS(280), 1,
      anon_sym_LBRACK,
    ACTIONS(282), 1,
      anon_sym_TILDE,
    ACTIONS(284), 1,
      anon_sym_TILDE_GT,
  [2115] = 3,
    ACTIONS(286), 1,
      anon_sym_LBRACK,
    ACTIONS(288), 1,
      anon_sym_TILDE,
    ACTIONS(290), 1,
      anon_sym_TILDE_GT,
  [2125] = 3,
    ACTIONS(147), 1,
      anon_sym_RBRACK,
    ACTIONS(239), 1,
      anon_sym_COMMA,
    STATE(58), 1,
      aux_sym_pattern_repeat1,
  [2135] = 3,
    ACTIONS(73), 1,
      anon_sym_PIPE,
    ACTIONS(292), 1,
      anon_sym_RBRACK,
    STATE(116), 1,
      sym__association,
  [2145] = 1,
    ACTIONS(294), 3,
      anon_sym_RBRACK,
      anon_sym_RPAREN,
      anon_sym_PIPE,
  [2151] = 3,
    ACTIONS(296), 1,
      anon_sym_COLON,
    ACTIONS(298), 1,
      anon_sym_COLON_COLON,
    STATE(42), 1,
      sym_binder,
  [2161] = 1,
    ACTIONS(300), 3,
      anon_sym_RBRACK,
      anon_sym_RPAREN,
      anon_sym_PIPE,
  [2167] = 3,
    ACTIONS(157), 1,
      anon_sym_RBRACK,
    ACTIONS(302), 1,
      anon_sym_COMMA,
    STATE(75), 1,
      aux_sym_pattern_repeat1,
  [2177] = 1,
    ACTIONS(278), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [2182] = 2,
    ACTIONS(305), 1,
      anon_sym_EQ,
    ACTIONS(307), 1,
      anon_sym_EQ_GT,
  [2189] = 2,
    ACTIONS(309), 1,
      anon_sym_EQ,
    ACTIONS(311), 1,
      anon_sym_EQ_GT,
  [2196] = 2,
    ACTIONS(313), 1,
      anon_sym_TILDE,
    ACTIONS(315), 1,
      anon_sym_TILDE_GT,
  [2203] = 2,
    ACTIONS(317), 1,
      anon_sym_DASH,
    ACTIONS(319), 1,
      anon_sym_DASH_GT,
  [2210] = 2,
    ACTIONS(321), 1,
      anon_sym_DASH,
    ACTIONS(323), 1,
      anon_sym_DASH_GT,
  [2217] = 2,
    ACTIONS(325), 1,
      anon_sym_TILDE,
    ACTIONS(327), 1,
      anon_sym_TILDE_GT,
  [2224] = 1,
    ACTIONS(329), 2,
      anon_sym_COMMA,
      anon_sym_RBRACE,
  [2229] = 1,
    ACTIONS(331), 1,
      anon_sym_LPAREN,
  [2233] = 1,
    ACTIONS(333), 1,
      anon_sym_RPAREN,
  [2237] = 1,
    ACTIONS(335), 1,
      anon_sym_RPAREN,
  [2241] = 1,
    ACTIONS(337), 1,
      anon_sym_LPAREN,
  [2245] = 1,
    ACTIONS(339), 1,
      anon_sym_LPAREN,
  [2249] = 1,
    ACTIONS(341), 1,
      anon_sym_RBRACK,
  [2253] = 1,
    ACTIONS(343), 1,
      anon_sym_RBRACK,
  [2257] = 1,
    ACTIONS(345), 1,
      anon_sym_RBRACK,
  [2261] = 1,
    ACTIONS(347), 1,
      anon_sym_RBRACK,
  [2265] = 1,
    ACTIONS(349), 1,
      anon_sym_RBRACK,
  [2269] = 1,
    ACTIONS(351), 1,
      anon_sym_RBRACK,
  [2273] = 1,
    ACTIONS(353), 1,
      anon_sym_RBRACK,
  [2277] = 1,
    ACTIONS(355), 1,
      anon_sym_LPAREN,
  [2281] = 1,
    ACTIONS(357), 1,
      anon_sym_LPAREN,
  [2285] = 1,
    ACTIONS(359), 1,
      anon_sym_LPAREN,
  [2289] = 1,
    ACTIONS(361), 1,
      anon_sym_LPAREN,
  [2293] = 1,
    ACTIONS(363), 1,
      anon_sym_LPAREN,
  [2297] = 1,
    ACTIONS(365), 1,
      sym_symbol,
  [2301] = 1,
    ACTIONS(367), 1,
      anon_sym_RBRACK,
  [2305] = 1,
    ACTIONS(369), 1,
      anon_sym_LPAREN,
  [2309] = 1,
    ACTIONS(371), 1,
      anon_sym_LPAREN,
  [2313] = 1,
    ACTIONS(373), 1,
      anon_sym_LPAREN,
  [2317] = 1,
    ACTIONS(375), 1,
      anon_sym_LPAREN,
  [2321] = 1,
    ACTIONS(377), 1,
      anon_sym_LPAREN,
  [2325] = 1,
    ACTIONS(379), 1,
      anon_sym_LPAREN,
  [2329] = 1,
    ACTIONS(381), 1,
      anon_sym_LPAREN,
  [2333] = 1,
    ACTIONS(383), 1,
      anon_sym_LPAREN,
  [2337] = 1,
    ACTIONS(385), 1,
      anon_sym_LPAREN,
  [2341] = 1,
    ACTIONS(387), 1,
      anon_sym_LPAREN,
  [2345] = 1,
    ACTIONS(389), 1,
      anon_sym_LPAREN,
  [2349] = 1,
    ACTIONS(391), 1,
      anon_sym_LPAREN,
  [2353] = 1,
    ACTIONS(393), 1,
      anon_sym_LPAREN,
  [2357] = 1,
    ACTIONS(395), 1,
      anon_sym_RBRACK,
  [2361] = 1,
    ACTIONS(397), 1,
      anon_sym_LPAREN,
  [2365] = 1,
    ACTIONS(399), 1,
      anon_sym_LPAREN,
  [2369] = 1,
    ACTIONS(197), 1,
      sym_symbol,
  [2373] = 1,
    ACTIONS(401), 1,
      sym_symbol,
  [2377] = 1,
    ACTIONS(403), 1,
      ts_builtin_sym_end,
  [2381] = 1,
    ACTIONS(405), 1,
      anon_sym_LPAREN,
  [2385] = 1,
    ACTIONS(407), 1,
      anon_sym_LPAREN,
};

static const uint32_t ts_small_parse_table_map[] = {
  [SMALL_STATE(2)] = 0,
  [SMALL_STATE(3)] = 59,
  [SMALL_STATE(4)] = 123,
  [SMALL_STATE(5)] = 187,
  [SMALL_STATE(6)] = 251,
  [SMALL_STATE(7)] = 315,
  [SMALL_STATE(8)] = 383,
  [SMALL_STATE(9)] = 443,
  [SMALL_STATE(10)] = 479,
  [SMALL_STATE(11)] = 515,
  [SMALL_STATE(12)] = 551,
  [SMALL_STATE(13)] = 608,
  [SMALL_STATE(14)] = 665,
  [SMALL_STATE(15)] = 727,
  [SMALL_STATE(16)] = 781,
  [SMALL_STATE(17)] = 835,
  [SMALL_STATE(18)] = 894,
  [SMALL_STATE(19)] = 953,
  [SMALL_STATE(20)] = 1012,
  [SMALL_STATE(21)] = 1071,
  [SMALL_STATE(22)] = 1130,
  [SMALL_STATE(23)] = 1189,
  [SMALL_STATE(24)] = 1221,
  [SMALL_STATE(25)] = 1253,
  [SMALL_STATE(26)] = 1280,
  [SMALL_STATE(27)] = 1307,
  [SMALL_STATE(28)] = 1334,
  [SMALL_STATE(29)] = 1360,
  [SMALL_STATE(30)] = 1390,
  [SMALL_STATE(31)] = 1416,
  [SMALL_STATE(32)] = 1442,
  [SMALL_STATE(33)] = 1468,
  [SMALL_STATE(34)] = 1498,
  [SMALL_STATE(35)] = 1526,
  [SMALL_STATE(36)] = 1552,
  [SMALL_STATE(37)] = 1578,
  [SMALL_STATE(38)] = 1604,
  [SMALL_STATE(39)] = 1630,
  [SMALL_STATE(40)] = 1660,
  [SMALL_STATE(41)] = 1689,
  [SMALL_STATE(42)] = 1723,
  [SMALL_STATE(43)] = 1757,
  [SMALL_STATE(44)] = 1780,
  [SMALL_STATE(45)] = 1800,
  [SMALL_STATE(46)] = 1823,
  [SMALL_STATE(47)] = 1851,
  [SMALL_STATE(48)] = 1872,
  [SMALL_STATE(49)] = 1890,
  [SMALL_STATE(50)] = 1910,
  [SMALL_STATE(51)] = 1930,
  [SMALL_STATE(52)] = 1943,
  [SMALL_STATE(53)] = 1954,
  [SMALL_STATE(54)] = 1965,
  [SMALL_STATE(55)] = 1978,
  [SMALL_STATE(56)] = 1990,
  [SMALL_STATE(57)] = 2002,
  [SMALL_STATE(58)] = 2013,
  [SMALL_STATE(59)] = 2023,
  [SMALL_STATE(60)] = 2029,
  [SMALL_STATE(61)] = 2039,
  [SMALL_STATE(62)] = 2049,
  [SMALL_STATE(63)] = 2059,
  [SMALL_STATE(64)] = 2069,
  [SMALL_STATE(65)] = 2079,
  [SMALL_STATE(66)] = 2085,
  [SMALL_STATE(67)] = 2095,
  [SMALL_STATE(68)] = 2105,
  [SMALL_STATE(69)] = 2115,
  [SMALL_STATE(70)] = 2125,
  [SMALL_STATE(71)] = 2135,
  [SMALL_STATE(72)] = 2145,
  [SMALL_STATE(73)] = 2151,
  [SMALL_STATE(74)] = 2161,
  [SMALL_STATE(75)] = 2167,
  [SMALL_STATE(76)] = 2177,
  [SMALL_STATE(77)] = 2182,
  [SMALL_STATE(78)] = 2189,
  [SMALL_STATE(79)] = 2196,
  [SMALL_STATE(80)] = 2203,
  [SMALL_STATE(81)] = 2210,
  [SMALL_STATE(82)] = 2217,
  [SMALL_STATE(83)] = 2224,
  [SMALL_STATE(84)] = 2229,
  [SMALL_STATE(85)] = 2233,
  [SMALL_STATE(86)] = 2237,
  [SMALL_STATE(87)] = 2241,
  [SMALL_STATE(88)] = 2245,
  [SMALL_STATE(89)] = 2249,
  [SMALL_STATE(90)] = 2253,
  [SMALL_STATE(91)] = 2257,
  [SMALL_STATE(92)] = 2261,
  [SMALL_STATE(93)] = 2265,
  [SMALL_STATE(94)] = 2269,
  [SMALL_STATE(95)] = 2273,
  [SMALL_STATE(96)] = 2277,
  [SMALL_STATE(97)] = 2281,
  [SMALL_STATE(98)] = 2285,
  [SMALL_STATE(99)] = 2289,
  [SMALL_STATE(100)] = 2293,
  [SMALL_STATE(101)] = 2297,
  [SMALL_STATE(102)] = 2301,
  [SMALL_STATE(103)] = 2305,
  [SMALL_STATE(104)] = 2309,
  [SMALL_STATE(105)] = 2313,
  [SMALL_STATE(106)] = 2317,
  [SMALL_STATE(107)] = 2321,
  [SMALL_STATE(108)] = 2325,
  [SMALL_STATE(109)] = 2329,
  [SMALL_STATE(110)] = 2333,
  [SMALL_STATE(111)] = 2337,
  [SMALL_STATE(112)] = 2341,
  [SMALL_STATE(113)] = 2345,
  [SMALL_STATE(114)] = 2349,
  [SMALL_STATE(115)] = 2353,
  [SMALL_STATE(116)] = 2357,
  [SMALL_STATE(117)] = 2361,
  [SMALL_STATE(118)] = 2365,
  [SMALL_STATE(119)] = 2369,
  [SMALL_STATE(120)] = 2373,
  [SMALL_STATE(121)] = 2377,
  [SMALL_STATE(122)] = 2381,
  [SMALL_STATE(123)] = 2385,
};

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}}, REDUCE(sym_gram, 0, 0, 0),
  [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
  [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101),
  [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
  [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
  [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28),
  [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
  [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
  [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34),
  [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
  [23] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__path, 1, 0, 0),
  [25] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__path, 1, 0, 0),
  [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61),
  [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
  [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
  [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64),
  [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68),
  [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69),
  [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gram, 2, 0, 1),
  [41] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_gram_repeat1, 2, 0, 0),
  [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gram_repeat1, 2, 0, 0), SHIFT_REPEAT(7),
  [46] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_gram_repeat1, 2, 0, 0), SHIFT_REPEAT(101),
  [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gram_repeat1, 2, 0, 0), SHIFT_REPEAT(14),
  [52] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_gram_repeat1, 2, 0, 0), SHIFT_REPEAT(28),
  [55] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gram_repeat1, 2, 0, 0), SHIFT_REPEAT(28),
  [58] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gram_repeat1, 2, 0, 0), SHIFT_REPEAT(54),
  [61] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_gram_repeat1, 2, 0, 0), SHIFT_REPEAT(34),
  [64] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_gram_repeat1, 2, 0, 0), SHIFT_REPEAT(34),
  [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gram, 1, 0, 1),
  [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_gram, 1, 0, 0),
  [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
  [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
  [75] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119),
  [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119),
  [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46),
  [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
  [83] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45),
  [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
  [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 2, 0, 5),
  [89] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 2, 0, 5),
  [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 2, 0, 6),
  [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 2, 0, 6),
  [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 3, 0, 15),
  [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 3, 0, 15),
  [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
  [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30),
  [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
  [105] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 3, 0, 13),
  [107] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 3, 0, 13),
  [109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 2, 0, 0),
  [111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 2, 0, 0),
  [113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record, 2, 0, 0),
  [115] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record, 2, 0, 0),
  [117] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record, 3, 0, 0),
  [119] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record, 3, 0, 0),
  [121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record, 4, 0, 0),
  [123] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record, 4, 0, 0),
  [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_element, 1, 0, 0),
  [127] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_element, 1, 0, 0),
  [129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 2, 0, 0),
  [131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
  [133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 2, 0, 0),
  [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_element, 2, 0, 0),
  [137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_element, 2, 0, 0),
  [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subject, 3, 0, 8),
  [141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subject, 3, 0, 8),
  [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subject, 3, 0, 7),
  [145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subject, 3, 0, 7),
  [147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 0),
  [149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, 0, 0),
  [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__value, 1, 0, 0),
  [153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__value, 1, 0, 0),
  [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51),
  [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_pattern_repeat1, 2, 0, 0),
  [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_pattern_repeat1, 2, 0, 0),
  [161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relationship, 3, 0, 14),
  [163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_relationship, 3, 0, 14),
  [165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subject, 2, 0, 0),
  [167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subject, 2, 0, 0),
  [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subject, 4, 0, 16),
  [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subject, 4, 0, 16),
  [173] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(12),
  [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_pattern_element_repeat1, 2, 0, 0),
  [178] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_pattern_element_repeat1, 2, 0, 0), SHIFT_REPEAT(101),
  [181] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_pattern_element_repeat1, 2, 0, 0),
  [183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85),
  [185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85),
  [187] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52),
  [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
  [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation, 5, 0, 19),
  [193] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation, 5, 0, 19),
  [195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binder, 1, 0, 0),
  [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binder, 1, 0, 0),
  [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
  [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attributes, 1, 0, 2),
  [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
  [205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73),
  [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
  [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_labels, 1, 0, 0),
  [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_labels_repeat1, 2, 0, 0),
  [213] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_labels_repeat1, 2, 0, 0), SHIFT_REPEAT(119),
  [216] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_labels_repeat1, 2, 0, 0), SHIFT_REPEAT(119),
  [219] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11),
  [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
  [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_property, 3, 0, 18),
  [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
  [227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 12),
  [229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_label, 2, 0, 12),
  [231] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9),
  [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
  [235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attributes, 2, 0, 9),
  [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attributes, 1, 0, 3),
  [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
  [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attributes, 1, 0, 4),
  [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
  [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
  [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
  [249] = {.entry = {.count = 1, .reusable = false}}, SHIFT(122),
  [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100),
  [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
  [255] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87),
  [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
  [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
  [261] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96),
  [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
  [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
  [267] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99),
  [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123),
  [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attributes, 3, 0, 17),
  [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
  [275] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_record_repeat1, 2, 0, 0), SHIFT_REPEAT(48),
  [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_repeat1, 2, 0, 0),
  [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22),
  [282] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84),
  [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103),
  [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
  [288] = {.entry = {.count = 1, .reusable = false}}, SHIFT(117),
  [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118),
  [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
  [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attributes, 2, 0, 11),
  [296] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44),
  [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
  [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attributes, 2, 0, 10),
  [302] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(13),
  [305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(110),
  [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111),
  [309] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108),
  [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109),
  [313] = {.entry = {.count = 1, .reusable = false}}, SHIFT(114),
  [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115),
  [317] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106),
  [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107),
  [321] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104),
  [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105),
  [325] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112),
  [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113),
  [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_property, 4, 0, 20),
  [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_squiggle_undirected, 2, 0, 0),
  [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
  [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
  [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_single_left, 2, 0, 0),
  [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_single_bidirectional, 2, 0, 0),
  [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__association, 2, 0, 0),
  [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81),
  [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80),
  [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
  [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77),
  [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82),
  [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
  [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_double_undirected, 2, 0, 0),
  [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_double_right, 2, 0, 0),
  [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
  [361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_double_left, 2, 0, 0),
  [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_single_right, 2, 0, 0),
  [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98),
  [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
  [369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_squiggle_right, 2, 0, 0),
  [371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_single_undirected, 5, 0, 21),
  [373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_single_right, 5, 0, 21),
  [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_single_left, 5, 0, 21),
  [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_single_bidirectional, 5, 0, 21),
  [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_double_undirected, 5, 0, 21),
  [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_double_right, 5, 0, 21),
  [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_double_left, 5, 0, 21),
  [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_double_bidirectional, 5, 0, 21),
  [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_squiggle_undirected, 5, 0, 21),
  [389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_squiggle_right, 5, 0, 21),
  [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_squiggle_left, 5, 0, 21),
  [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_squiggle_bidirectional, 5, 0, 21),
  [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38),
  [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_squiggle_left, 2, 0, 0),
  [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_squiggle_bidirectional, 2, 0, 0),
  [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
  [403] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
  [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_single_undirected, 2, 0, 0),
  [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_double_bidirectional, 2, 0, 0),
};

#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_gram(void) {
  static const TSLanguage language = {
    .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,
    .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,
    .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 = ts_lex_modes,
    .lex_fn = ts_lex,
    .primary_state_ids = ts_primary_state_ids,
  };
  return &language;
}
#ifdef __cplusplus
}
#endif
