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

#include "tree_sitter/parser.h"

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

#define LANGUAGE_VERSION 15
#define STATE_COUNT 326
#define LARGE_STATE_COUNT 2
#define SYMBOL_COUNT 92
#define ALIAS_COUNT 1
#define TOKEN_COUNT 43
#define EXTERNAL_TOKEN_COUNT 0
#define FIELD_COUNT 33
#define MAX_ALIAS_SEQUENCE_LENGTH 14
#define MAX_RESERVED_WORD_SET_SIZE 0
#define PRODUCTION_ID_COUNT 172
#define SUPERTYPE_COUNT 0

enum ts_symbol_identifiers {
  sym_identifier = 1,
  sym_comment = 2,
  anon_sym_include = 3,
  anon_sym_category = 4,
  anon_sym_LBRACE = 5,
  anon_sym_RBRACE = 6,
  anon_sym_abstract = 7,
  anon_sym_asset = 8,
  anon_sym_extends = 9,
  anon_sym_let = 10,
  anon_sym_EQ = 11,
  anon_sym_AT = 12,
  sym_step_type = 13,
  anon_sym_COMMA = 14,
  anon_sym_BANG = 15,
  anon_sym_SLASH_SLASH_BANG = 16,
  anon_sym_DOT = 17,
  anon_sym_LPAREN = 18,
  anon_sym_RPAREN = 19,
  anon_sym_LT_DASH = 20,
  anon_sym_PLUS_GT = 21,
  anon_sym_DASH_GT = 22,
  anon_sym_LBRACK = 23,
  anon_sym_RBRACK = 24,
  anon_sym_PLUS = 25,
  anon_sym_DASH = 26,
  anon_sym_STAR = 27,
  anon_sym_SLASH = 28,
  anon_sym_CARET = 29,
  anon_sym_BSLASH_SLASH = 30,
  anon_sym_SLASH_BSLASH = 31,
  anon_sym_POUND = 32,
  anon_sym_COLON = 33,
  anon_sym_associations = 34,
  anon_sym_LT_DASH_DASH = 35,
  anon_sym_DASH_DASH_GT = 36,
  anon_sym_DOT_DOT = 37,
  anon_sym_info = 38,
  sym_string = 39,
  sym_integer = 40,
  sym_float = 41,
  sym_cia = 42,
  sym_source_file = 43,
  sym_declaration = 44,
  sym_include_declaration = 45,
  sym_category_declaration = 46,
  sym_asset_declaration = 47,
  sym_asset_definition = 48,
  sym_asset_variable = 49,
  sym_attack_step = 50,
  sym_cias = 51,
  sym_detector = 52,
  sym_detector_name = 53,
  sym_detector_context = 54,
  sym_detector_context_asset = 55,
  sym_preconditions = 56,
  sym_reaching = 57,
  sym_ttc = 58,
  sym__ttc_expr = 59,
  sym__ttc_parenthesized = 60,
  sym__ttc_primary = 61,
  sym_ttc_distribution = 62,
  sym_ttc_binop = 63,
  sym_asset_expr = 64,
  sym__inline_asset_expr = 65,
  sym__asset_expr_primary = 66,
  sym_asset_variable_substitution = 67,
  sym_asset_expr_type = 68,
  sym_asset_expr_binop = 69,
  sym_asset_expr_unop = 70,
  sym_define_declaration = 71,
  sym_associations_declaration = 72,
  sym_association = 73,
  sym_multiplicity = 74,
  sym__multiplicity_atom = 75,
  sym_multiplicity_range = 76,
  sym_meta = 77,
  sym__number = 78,
  sym_star = 79,
  aux_sym_source_file_repeat1 = 80,
  aux_sym_category_declaration_repeat1 = 81,
  aux_sym_category_declaration_repeat2 = 82,
  aux_sym_asset_definition_repeat1 = 83,
  aux_sym_attack_step_repeat1 = 84,
  aux_sym_attack_step_repeat2 = 85,
  aux_sym_cias_repeat1 = 86,
  aux_sym_detector_name_repeat1 = 87,
  aux_sym_detector_context_repeat1 = 88,
  aux_sym_preconditions_repeat1 = 89,
  aux_sym_ttc_distribution_repeat1 = 90,
  aux_sym_associations_declaration_repeat1 = 91,
  alias_sym_meta_string = 92,
};

static const char * const ts_symbol_names[] = {
  [ts_builtin_sym_end] = "end",
  [sym_identifier] = "identifier",
  [sym_comment] = "comment",
  [anon_sym_include] = "include",
  [anon_sym_category] = "category",
  [anon_sym_LBRACE] = "{",
  [anon_sym_RBRACE] = "}",
  [anon_sym_abstract] = "abstract",
  [anon_sym_asset] = "asset",
  [anon_sym_extends] = "extends",
  [anon_sym_let] = "let",
  [anon_sym_EQ] = "=",
  [anon_sym_AT] = "@",
  [sym_step_type] = "step_type",
  [anon_sym_COMMA] = ",",
  [anon_sym_BANG] = "!",
  [anon_sym_SLASH_SLASH_BANG] = "//!",
  [anon_sym_DOT] = ".",
  [anon_sym_LPAREN] = "(",
  [anon_sym_RPAREN] = ")",
  [anon_sym_LT_DASH] = "<-",
  [anon_sym_PLUS_GT] = "+>",
  [anon_sym_DASH_GT] = "->",
  [anon_sym_LBRACK] = "[",
  [anon_sym_RBRACK] = "]",
  [anon_sym_PLUS] = "+",
  [anon_sym_DASH] = "-",
  [anon_sym_STAR] = "*",
  [anon_sym_SLASH] = "/",
  [anon_sym_CARET] = "^",
  [anon_sym_BSLASH_SLASH] = "\\/",
  [anon_sym_SLASH_BSLASH] = "/\\",
  [anon_sym_POUND] = "#",
  [anon_sym_COLON] = ":",
  [anon_sym_associations] = "associations",
  [anon_sym_LT_DASH_DASH] = "<--",
  [anon_sym_DASH_DASH_GT] = "-->",
  [anon_sym_DOT_DOT] = "..",
  [anon_sym_info] = "info",
  [sym_string] = "string",
  [sym_integer] = "integer",
  [sym_float] = "float",
  [sym_cia] = "cia",
  [sym_source_file] = "source_file",
  [sym_declaration] = "declaration",
  [sym_include_declaration] = "include_declaration",
  [sym_category_declaration] = "category_declaration",
  [sym_asset_declaration] = "asset_declaration",
  [sym_asset_definition] = "asset_definition",
  [sym_asset_variable] = "asset_variable",
  [sym_attack_step] = "attack_step",
  [sym_cias] = "cias",
  [sym_detector] = "detector",
  [sym_detector_name] = "detector_name",
  [sym_detector_context] = "detector_context",
  [sym_detector_context_asset] = "detector_context_asset",
  [sym_preconditions] = "preconditions",
  [sym_reaching] = "reaching",
  [sym_ttc] = "ttc",
  [sym__ttc_expr] = "_ttc_expr",
  [sym__ttc_parenthesized] = "_ttc_parenthesized",
  [sym__ttc_primary] = "_ttc_primary",
  [sym_ttc_distribution] = "ttc_distribution",
  [sym_ttc_binop] = "ttc_binop",
  [sym_asset_expr] = "asset_expr",
  [sym__inline_asset_expr] = "_inline_asset_expr",
  [sym__asset_expr_primary] = "_asset_expr_primary",
  [sym_asset_variable_substitution] = "asset_variable_substitution",
  [sym_asset_expr_type] = "asset_expr_type",
  [sym_asset_expr_binop] = "asset_expr_binop",
  [sym_asset_expr_unop] = "asset_expr_unop",
  [sym_define_declaration] = "define_declaration",
  [sym_associations_declaration] = "associations_declaration",
  [sym_association] = "association",
  [sym_multiplicity] = "multiplicity",
  [sym__multiplicity_atom] = "_multiplicity_atom",
  [sym_multiplicity_range] = "multiplicity_range",
  [sym_meta] = "meta",
  [sym__number] = "_number",
  [sym_star] = "star",
  [aux_sym_source_file_repeat1] = "source_file_repeat1",
  [aux_sym_category_declaration_repeat1] = "category_declaration_repeat1",
  [aux_sym_category_declaration_repeat2] = "category_declaration_repeat2",
  [aux_sym_asset_definition_repeat1] = "asset_definition_repeat1",
  [aux_sym_attack_step_repeat1] = "attack_step_repeat1",
  [aux_sym_attack_step_repeat2] = "attack_step_repeat2",
  [aux_sym_cias_repeat1] = "cias_repeat1",
  [aux_sym_detector_name_repeat1] = "detector_name_repeat1",
  [aux_sym_detector_context_repeat1] = "detector_context_repeat1",
  [aux_sym_preconditions_repeat1] = "preconditions_repeat1",
  [aux_sym_ttc_distribution_repeat1] = "ttc_distribution_repeat1",
  [aux_sym_associations_declaration_repeat1] = "associations_declaration_repeat1",
  [alias_sym_meta_string] = "meta_string",
};

static const TSSymbol ts_symbol_map[] = {
  [ts_builtin_sym_end] = ts_builtin_sym_end,
  [sym_identifier] = sym_identifier,
  [sym_comment] = sym_comment,
  [anon_sym_include] = anon_sym_include,
  [anon_sym_category] = anon_sym_category,
  [anon_sym_LBRACE] = anon_sym_LBRACE,
  [anon_sym_RBRACE] = anon_sym_RBRACE,
  [anon_sym_abstract] = anon_sym_abstract,
  [anon_sym_asset] = anon_sym_asset,
  [anon_sym_extends] = anon_sym_extends,
  [anon_sym_let] = anon_sym_let,
  [anon_sym_EQ] = anon_sym_EQ,
  [anon_sym_AT] = anon_sym_AT,
  [sym_step_type] = sym_step_type,
  [anon_sym_COMMA] = anon_sym_COMMA,
  [anon_sym_BANG] = anon_sym_BANG,
  [anon_sym_SLASH_SLASH_BANG] = anon_sym_SLASH_SLASH_BANG,
  [anon_sym_DOT] = anon_sym_DOT,
  [anon_sym_LPAREN] = anon_sym_LPAREN,
  [anon_sym_RPAREN] = anon_sym_RPAREN,
  [anon_sym_LT_DASH] = anon_sym_LT_DASH,
  [anon_sym_PLUS_GT] = anon_sym_PLUS_GT,
  [anon_sym_DASH_GT] = anon_sym_DASH_GT,
  [anon_sym_LBRACK] = anon_sym_LBRACK,
  [anon_sym_RBRACK] = anon_sym_RBRACK,
  [anon_sym_PLUS] = anon_sym_PLUS,
  [anon_sym_DASH] = anon_sym_DASH,
  [anon_sym_STAR] = anon_sym_STAR,
  [anon_sym_SLASH] = anon_sym_SLASH,
  [anon_sym_CARET] = anon_sym_CARET,
  [anon_sym_BSLASH_SLASH] = anon_sym_BSLASH_SLASH,
  [anon_sym_SLASH_BSLASH] = anon_sym_SLASH_BSLASH,
  [anon_sym_POUND] = anon_sym_POUND,
  [anon_sym_COLON] = anon_sym_COLON,
  [anon_sym_associations] = anon_sym_associations,
  [anon_sym_LT_DASH_DASH] = anon_sym_LT_DASH_DASH,
  [anon_sym_DASH_DASH_GT] = anon_sym_DASH_DASH_GT,
  [anon_sym_DOT_DOT] = anon_sym_DOT_DOT,
  [anon_sym_info] = anon_sym_info,
  [sym_string] = sym_string,
  [sym_integer] = sym_integer,
  [sym_float] = sym_float,
  [sym_cia] = sym_cia,
  [sym_source_file] = sym_source_file,
  [sym_declaration] = sym_declaration,
  [sym_include_declaration] = sym_include_declaration,
  [sym_category_declaration] = sym_category_declaration,
  [sym_asset_declaration] = sym_asset_declaration,
  [sym_asset_definition] = sym_asset_definition,
  [sym_asset_variable] = sym_asset_variable,
  [sym_attack_step] = sym_attack_step,
  [sym_cias] = sym_cias,
  [sym_detector] = sym_detector,
  [sym_detector_name] = sym_detector_name,
  [sym_detector_context] = sym_detector_context,
  [sym_detector_context_asset] = sym_detector_context_asset,
  [sym_preconditions] = sym_preconditions,
  [sym_reaching] = sym_reaching,
  [sym_ttc] = sym_ttc,
  [sym__ttc_expr] = sym__ttc_expr,
  [sym__ttc_parenthesized] = sym__ttc_parenthesized,
  [sym__ttc_primary] = sym__ttc_primary,
  [sym_ttc_distribution] = sym_ttc_distribution,
  [sym_ttc_binop] = sym_ttc_binop,
  [sym_asset_expr] = sym_asset_expr,
  [sym__inline_asset_expr] = sym__inline_asset_expr,
  [sym__asset_expr_primary] = sym__asset_expr_primary,
  [sym_asset_variable_substitution] = sym_asset_variable_substitution,
  [sym_asset_expr_type] = sym_asset_expr_type,
  [sym_asset_expr_binop] = sym_asset_expr_binop,
  [sym_asset_expr_unop] = sym_asset_expr_unop,
  [sym_define_declaration] = sym_define_declaration,
  [sym_associations_declaration] = sym_associations_declaration,
  [sym_association] = sym_association,
  [sym_multiplicity] = sym_multiplicity,
  [sym__multiplicity_atom] = sym__multiplicity_atom,
  [sym_multiplicity_range] = sym_multiplicity_range,
  [sym_meta] = sym_meta,
  [sym__number] = sym__number,
  [sym_star] = sym_star,
  [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1,
  [aux_sym_category_declaration_repeat1] = aux_sym_category_declaration_repeat1,
  [aux_sym_category_declaration_repeat2] = aux_sym_category_declaration_repeat2,
  [aux_sym_asset_definition_repeat1] = aux_sym_asset_definition_repeat1,
  [aux_sym_attack_step_repeat1] = aux_sym_attack_step_repeat1,
  [aux_sym_attack_step_repeat2] = aux_sym_attack_step_repeat2,
  [aux_sym_cias_repeat1] = aux_sym_cias_repeat1,
  [aux_sym_detector_name_repeat1] = aux_sym_detector_name_repeat1,
  [aux_sym_detector_context_repeat1] = aux_sym_detector_context_repeat1,
  [aux_sym_preconditions_repeat1] = aux_sym_preconditions_repeat1,
  [aux_sym_ttc_distribution_repeat1] = aux_sym_ttc_distribution_repeat1,
  [aux_sym_associations_declaration_repeat1] = aux_sym_associations_declaration_repeat1,
  [alias_sym_meta_string] = alias_sym_meta_string,
};

static const TSSymbolMetadata ts_symbol_metadata[] = {
  [ts_builtin_sym_end] = {
    .visible = false,
    .named = true,
  },
  [sym_identifier] = {
    .visible = true,
    .named = true,
  },
  [sym_comment] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_include] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_category] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_abstract] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_asset] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_extends] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_let] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AT] = {
    .visible = true,
    .named = false,
  },
  [sym_step_type] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_COMMA] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_BANG] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SLASH_SLASH_BANG] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DOT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_DASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PLUS_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DASH_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PLUS] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_STAR] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SLASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_CARET] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_BSLASH_SLASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SLASH_BSLASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_POUND] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_COLON] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_associations] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_DASH_DASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DASH_DASH_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DOT_DOT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_info] = {
    .visible = true,
    .named = false,
  },
  [sym_string] = {
    .visible = true,
    .named = true,
  },
  [sym_integer] = {
    .visible = true,
    .named = true,
  },
  [sym_float] = {
    .visible = true,
    .named = true,
  },
  [sym_cia] = {
    .visible = true,
    .named = true,
  },
  [sym_source_file] = {
    .visible = true,
    .named = true,
  },
  [sym_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_include_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_category_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_asset_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_asset_definition] = {
    .visible = true,
    .named = true,
  },
  [sym_asset_variable] = {
    .visible = true,
    .named = true,
  },
  [sym_attack_step] = {
    .visible = true,
    .named = true,
  },
  [sym_cias] = {
    .visible = true,
    .named = true,
  },
  [sym_detector] = {
    .visible = true,
    .named = true,
  },
  [sym_detector_name] = {
    .visible = true,
    .named = true,
  },
  [sym_detector_context] = {
    .visible = true,
    .named = true,
  },
  [sym_detector_context_asset] = {
    .visible = true,
    .named = true,
  },
  [sym_preconditions] = {
    .visible = true,
    .named = true,
  },
  [sym_reaching] = {
    .visible = true,
    .named = true,
  },
  [sym_ttc] = {
    .visible = true,
    .named = true,
  },
  [sym__ttc_expr] = {
    .visible = false,
    .named = true,
  },
  [sym__ttc_parenthesized] = {
    .visible = false,
    .named = true,
  },
  [sym__ttc_primary] = {
    .visible = false,
    .named = true,
  },
  [sym_ttc_distribution] = {
    .visible = true,
    .named = true,
  },
  [sym_ttc_binop] = {
    .visible = true,
    .named = true,
  },
  [sym_asset_expr] = {
    .visible = true,
    .named = true,
  },
  [sym__inline_asset_expr] = {
    .visible = false,
    .named = true,
  },
  [sym__asset_expr_primary] = {
    .visible = false,
    .named = true,
  },
  [sym_asset_variable_substitution] = {
    .visible = true,
    .named = true,
  },
  [sym_asset_expr_type] = {
    .visible = true,
    .named = true,
  },
  [sym_asset_expr_binop] = {
    .visible = true,
    .named = true,
  },
  [sym_asset_expr_unop] = {
    .visible = true,
    .named = true,
  },
  [sym_define_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_associations_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_association] = {
    .visible = true,
    .named = true,
  },
  [sym_multiplicity] = {
    .visible = true,
    .named = true,
  },
  [sym__multiplicity_atom] = {
    .visible = false,
    .named = true,
  },
  [sym_multiplicity_range] = {
    .visible = true,
    .named = true,
  },
  [sym_meta] = {
    .visible = true,
    .named = true,
  },
  [sym__number] = {
    .visible = false,
    .named = true,
  },
  [sym_star] = {
    .visible = true,
    .named = true,
  },
  [aux_sym_source_file_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_category_declaration_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_category_declaration_repeat2] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_asset_definition_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_attack_step_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_attack_step_repeat2] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_cias_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_detector_name_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_detector_context_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_preconditions_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_ttc_distribution_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_associations_declaration_repeat1] = {
    .visible = false,
    .named = false,
  },
  [alias_sym_meta_string] = {
    .visible = true,
    .named = true,
  },
};

enum ts_field_identifiers {
  field_assets = 1,
  field_body = 2,
  field_cias = 3,
  field_condition = 4,
  field_context = 5,
  field_detector = 6,
  field_end = 7,
  field_expression = 8,
  field_extends = 9,
  field_file = 10,
  field_id = 11,
  field_info = 12,
  field_left = 13,
  field_left_field_id = 14,
  field_left_id = 15,
  field_left_mult = 16,
  field_meta = 17,
  field_name = 18,
  field_operator = 19,
  field_preconditions = 20,
  field_reaches = 21,
  field_right = 22,
  field_right_field_id = 23,
  field_right_id = 24,
  field_right_mult = 25,
  field_start = 26,
  field_step_type = 27,
  field_tag = 28,
  field_ttc = 29,
  field_type = 30,
  field_type_id = 31,
  field_value = 32,
  field_values = 33,
};

static const char * const ts_field_names[] = {
  [0] = NULL,
  [field_assets] = "assets",
  [field_body] = "body",
  [field_cias] = "cias",
  [field_condition] = "condition",
  [field_context] = "context",
  [field_detector] = "detector",
  [field_end] = "end",
  [field_expression] = "expression",
  [field_extends] = "extends",
  [field_file] = "file",
  [field_id] = "id",
  [field_info] = "info",
  [field_left] = "left",
  [field_left_field_id] = "left_field_id",
  [field_left_id] = "left_id",
  [field_left_mult] = "left_mult",
  [field_meta] = "meta",
  [field_name] = "name",
  [field_operator] = "operator",
  [field_preconditions] = "preconditions",
  [field_reaches] = "reaches",
  [field_right] = "right",
  [field_right_field_id] = "right_field_id",
  [field_right_id] = "right_id",
  [field_right_mult] = "right_mult",
  [field_start] = "start",
  [field_step_type] = "step_type",
  [field_tag] = "tag",
  [field_ttc] = "ttc",
  [field_type] = "type",
  [field_type_id] = "type_id",
  [field_value] = "value",
  [field_values] = "values",
};

static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
  [1] = {.index = 0, .length = 1},
  [2] = {.index = 1, .length = 1},
  [3] = {.index = 2, .length = 2},
  [4] = {.index = 4, .length = 2},
  [5] = {.index = 6, .length = 2},
  [6] = {.index = 8, .length = 2},
  [7] = {.index = 10, .length = 3},
  [8] = {.index = 13, .length = 1},
  [9] = {.index = 14, .length = 2},
  [10] = {.index = 16, .length = 2},
  [11] = {.index = 18, .length = 2},
  [12] = {.index = 20, .length = 2},
  [13] = {.index = 22, .length = 3},
  [14] = {.index = 25, .length = 3},
  [15] = {.index = 28, .length = 3},
  [16] = {.index = 31, .length = 3},
  [17] = {.index = 34, .length = 3},
  [18] = {.index = 37, .length = 3},
  [19] = {.index = 40, .length = 3},
  [20] = {.index = 43, .length = 3},
  [21] = {.index = 46, .length = 2},
  [22] = {.index = 48, .length = 3},
  [23] = {.index = 51, .length = 3},
  [24] = {.index = 54, .length = 1},
  [25] = {.index = 55, .length = 1},
  [26] = {.index = 56, .length = 2},
  [27] = {.index = 58, .length = 4},
  [28] = {.index = 62, .length = 4},
  [29] = {.index = 66, .length = 4},
  [30] = {.index = 70, .length = 4},
  [31] = {.index = 74, .length = 4},
  [32] = {.index = 78, .length = 4},
  [33] = {.index = 82, .length = 4},
  [34] = {.index = 86, .length = 4},
  [35] = {.index = 90, .length = 4},
  [36] = {.index = 94, .length = 4},
  [37] = {.index = 98, .length = 4},
  [38] = {.index = 102, .length = 4},
  [39] = {.index = 106, .length = 4},
  [40] = {.index = 110, .length = 4},
  [41] = {.index = 114, .length = 4},
  [42] = {.index = 118, .length = 4},
  [43] = {.index = 122, .length = 4},
  [44] = {.index = 126, .length = 4},
  [45] = {.index = 130, .length = 4},
  [46] = {.index = 134, .length = 2},
  [47] = {.index = 136, .length = 5},
  [48] = {.index = 141, .length = 2},
  [49] = {.index = 143, .length = 2},
  [50] = {.index = 145, .length = 2},
  [51] = {.index = 147, .length = 2},
  [52] = {.index = 149, .length = 3},
  [53] = {.index = 152, .length = 5},
  [54] = {.index = 157, .length = 5},
  [55] = {.index = 162, .length = 5},
  [56] = {.index = 167, .length = 5},
  [57] = {.index = 172, .length = 5},
  [58] = {.index = 177, .length = 5},
  [59] = {.index = 182, .length = 5},
  [60] = {.index = 187, .length = 5},
  [61] = {.index = 192, .length = 5},
  [62] = {.index = 197, .length = 5},
  [63] = {.index = 202, .length = 5},
  [64] = {.index = 207, .length = 5},
  [65] = {.index = 212, .length = 5},
  [66] = {.index = 217, .length = 5},
  [67] = {.index = 222, .length = 5},
  [68] = {.index = 227, .length = 5},
  [69] = {.index = 232, .length = 5},
  [70] = {.index = 237, .length = 5},
  [71] = {.index = 242, .length = 5},
  [72] = {.index = 247, .length = 5},
  [73] = {.index = 252, .length = 5},
  [74] = {.index = 257, .length = 5},
  [75] = {.index = 262, .length = 1},
  [76] = {.index = 263, .length = 3},
  [77] = {.index = 266, .length = 6},
  [78] = {.index = 272, .length = 6},
  [79] = {.index = 278, .length = 6},
  [80] = {.index = 284, .length = 6},
  [81] = {.index = 290, .length = 6},
  [82] = {.index = 296, .length = 2},
  [83] = {.index = 298, .length = 3},
  [84] = {.index = 301, .length = 3},
  [85] = {.index = 304, .length = 3},
  [86] = {.index = 307, .length = 6},
  [87] = {.index = 313, .length = 6},
  [88] = {.index = 319, .length = 6},
  [89] = {.index = 325, .length = 6},
  [90] = {.index = 331, .length = 6},
  [91] = {.index = 337, .length = 6},
  [92] = {.index = 343, .length = 6},
  [93] = {.index = 349, .length = 6},
  [94] = {.index = 355, .length = 6},
  [95] = {.index = 361, .length = 6},
  [96] = {.index = 367, .length = 6},
  [97] = {.index = 373, .length = 6},
  [98] = {.index = 379, .length = 6},
  [99] = {.index = 385, .length = 6},
  [100] = {.index = 391, .length = 6},
  [101] = {.index = 397, .length = 6},
  [102] = {.index = 403, .length = 2},
  [103] = {.index = 405, .length = 7},
  [104] = {.index = 412, .length = 7},
  [105] = {.index = 419, .length = 7},
  [106] = {.index = 426, .length = 7},
  [107] = {.index = 433, .length = 7},
  [108] = {.index = 440, .length = 7},
  [109] = {.index = 447, .length = 7},
  [110] = {.index = 454, .length = 7},
  [111] = {.index = 461, .length = 7},
  [112] = {.index = 468, .length = 7},
  [113] = {.index = 475, .length = 4},
  [114] = {.index = 479, .length = 2},
  [115] = {.index = 481, .length = 7},
  [116] = {.index = 488, .length = 7},
  [117] = {.index = 495, .length = 7},
  [118] = {.index = 502, .length = 7},
  [119] = {.index = 509, .length = 7},
  [120] = {.index = 516, .length = 7},
  [121] = {.index = 523, .length = 7},
  [122] = {.index = 530, .length = 7},
  [123] = {.index = 537, .length = 7},
  [124] = {.index = 544, .length = 7},
  [125] = {.index = 551, .length = 7},
  [126] = {.index = 558, .length = 8},
  [127] = {.index = 566, .length = 8},
  [128] = {.index = 574, .length = 8},
  [129] = {.index = 582, .length = 8},
  [130] = {.index = 590, .length = 8},
  [131] = {.index = 598, .length = 8},
  [132] = {.index = 606, .length = 8},
  [133] = {.index = 614, .length = 8},
  [134] = {.index = 622, .length = 8},
  [135] = {.index = 630, .length = 8},
  [136] = {.index = 638, .length = 3},
  [137] = {.index = 641, .length = 8},
  [138] = {.index = 649, .length = 8},
  [139] = {.index = 657, .length = 8},
  [140] = {.index = 665, .length = 8},
  [141] = {.index = 673, .length = 8},
  [142] = {.index = 681, .length = 8},
  [143] = {.index = 689, .length = 8},
  [144] = {.index = 697, .length = 8},
  [145] = {.index = 705, .length = 8},
  [146] = {.index = 713, .length = 8},
  [147] = {.index = 721, .length = 8},
  [148] = {.index = 729, .length = 9},
  [149] = {.index = 738, .length = 9},
  [150] = {.index = 747, .length = 9},
  [151] = {.index = 756, .length = 9},
  [152] = {.index = 765, .length = 9},
  [153] = {.index = 774, .length = 9},
  [154] = {.index = 783, .length = 9},
  [155] = {.index = 792, .length = 9},
  [156] = {.index = 801, .length = 9},
  [157] = {.index = 810, .length = 9},
  [158] = {.index = 819, .length = 9},
  [159] = {.index = 828, .length = 9},
  [160] = {.index = 837, .length = 9},
  [161] = {.index = 846, .length = 9},
  [162] = {.index = 855, .length = 9},
  [163] = {.index = 864, .length = 7},
  [164] = {.index = 871, .length = 10},
  [165] = {.index = 881, .length = 10},
  [166] = {.index = 891, .length = 10},
  [167] = {.index = 901, .length = 10},
  [168] = {.index = 911, .length = 10},
  [169] = {.index = 921, .length = 10},
  [170] = {.index = 931, .length = 8},
  [171] = {.index = 939, .length = 11},
};

static const TSFieldMapEntry ts_field_map_entries[] = {
  [0] =
    {field_file, 1},
  [1] =
    {field_id, 1},
  [2] =
    {field_id, 1},
    {field_value, 3},
  [4] =
    {field_assets, 3},
    {field_id, 1},
  [6] =
    {field_id, 1},
    {field_meta, 2},
  [8] =
    {field_id, 0},
    {field_info, 3},
  [10] =
    {field_assets, 4},
    {field_id, 1},
    {field_meta, 2},
  [13] =
    {field_id, 2},
  [14] =
    {field_id, 1},
    {field_step_type, 0},
  [16] =
    {field_body, 3},
    {field_id, 1},
  [18] =
    {field_body, 4},
    {field_id, 2},
  [20] =
    {field_id, 2},
    {field_meta, 3},
  [22] =
    {field_id, 1},
    {field_preconditions, 2},
    {field_step_type, 0},
  [25] =
    {field_id, 1},
    {field_reaches, 2},
    {field_step_type, 0},
  [28] =
    {field_id, 1},
    {field_step_type, 0},
    {field_ttc, 2},
  [31] =
    {field_id, 1},
    {field_meta, 2},
    {field_step_type, 0},
  [34] =
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
  [37] =
    {field_detector, 2},
    {field_id, 1},
    {field_step_type, 0},
  [40] =
    {field_extends, 2},
    {field_extends, 3},
    {field_id, 1},
  [43] =
    {field_body, 4},
    {field_id, 1},
    {field_meta, 2},
  [46] =
    {field_end, 2},
    {field_start, 0},
  [48] =
    {field_extends, 3},
    {field_extends, 4},
    {field_id, 2},
  [51] =
    {field_body, 5},
    {field_id, 2},
    {field_meta, 3},
  [54] =
    {field_context, 1},
  [55] =
    {field_condition, 1},
  [56] =
    {field_operator, 0},
    {field_reaches, 1},
  [58] =
    {field_id, 1},
    {field_preconditions, 2},
    {field_reaches, 3},
    {field_step_type, 0},
  [62] =
    {field_id, 1},
    {field_preconditions, 3},
    {field_step_type, 0},
    {field_ttc, 2},
  [66] =
    {field_id, 1},
    {field_reaches, 3},
    {field_step_type, 0},
    {field_ttc, 2},
  [70] =
    {field_id, 1},
    {field_meta, 3},
    {field_step_type, 0},
    {field_ttc, 2},
  [74] =
    {field_detector, 3},
    {field_id, 1},
    {field_step_type, 0},
    {field_ttc, 2},
  [78] =
    {field_id, 1},
    {field_meta, 2},
    {field_preconditions, 3},
    {field_step_type, 0},
  [82] =
    {field_id, 1},
    {field_meta, 2},
    {field_reaches, 3},
    {field_step_type, 0},
  [86] =
    {field_detector, 3},
    {field_id, 1},
    {field_meta, 2},
    {field_step_type, 0},
  [90] =
    {field_id, 1},
    {field_preconditions, 3},
    {field_step_type, 0},
    {field_tag, 2},
  [94] =
    {field_id, 1},
    {field_reaches, 3},
    {field_step_type, 0},
    {field_tag, 2},
  [98] =
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [102] =
    {field_id, 1},
    {field_meta, 3},
    {field_step_type, 0},
    {field_tag, 2},
  [106] =
    {field_detector, 3},
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
  [110] =
    {field_detector, 2},
    {field_id, 1},
    {field_preconditions, 3},
    {field_step_type, 0},
  [114] =
    {field_detector, 2},
    {field_id, 1},
    {field_reaches, 3},
    {field_step_type, 0},
  [118] =
    {field_body, 5},
    {field_extends, 2},
    {field_extends, 3},
    {field_id, 1},
  [122] =
    {field_extends, 2},
    {field_extends, 3},
    {field_id, 1},
    {field_meta, 4},
  [126] =
    {field_body, 6},
    {field_extends, 3},
    {field_extends, 4},
    {field_id, 2},
  [130] =
    {field_extends, 3},
    {field_extends, 4},
    {field_id, 2},
    {field_meta, 5},
  [134] =
    {field_expression, 0},
    {field_operator, 1},
  [136] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_step_type, 0},
  [141] =
    {field_context, 2},
    {field_name, 1},
  [143] =
    {field_context, 1},
    {field_type, 2},
  [145] =
    {field_context, 1},
    {field_ttc, 2},
  [147] =
    {field_condition, 1},
    {field_condition, 2},
  [149] =
    {field_operator, 0},
    {field_reaches, 1},
    {field_reaches, 2},
  [152] =
    {field_id, 1},
    {field_preconditions, 3},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_ttc, 2},
  [157] =
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 4},
    {field_step_type, 0},
    {field_ttc, 2},
  [162] =
    {field_id, 1},
    {field_meta, 3},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_ttc, 2},
  [167] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_step_type, 0},
    {field_ttc, 2},
  [172] =
    {field_detector, 3},
    {field_id, 1},
    {field_preconditions, 4},
    {field_step_type, 0},
    {field_ttc, 2},
  [177] =
    {field_detector, 3},
    {field_id, 1},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_ttc, 2},
  [182] =
    {field_id, 1},
    {field_meta, 2},
    {field_preconditions, 3},
    {field_reaches, 4},
    {field_step_type, 0},
  [187] =
    {field_detector, 3},
    {field_id, 1},
    {field_meta, 2},
    {field_preconditions, 4},
    {field_step_type, 0},
  [192] =
    {field_detector, 3},
    {field_id, 1},
    {field_meta, 2},
    {field_reaches, 4},
    {field_step_type, 0},
  [197] =
    {field_id, 1},
    {field_preconditions, 3},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_tag, 2},
  [202] =
    {field_id, 1},
    {field_preconditions, 4},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [207] =
    {field_id, 1},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [212] =
    {field_id, 1},
    {field_meta, 4},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [217] =
    {field_detector, 4},
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [222] =
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 4},
    {field_step_type, 0},
    {field_tag, 2},
  [227] =
    {field_id, 1},
    {field_meta, 3},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_tag, 2},
  [232] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_step_type, 0},
    {field_tag, 2},
  [237] =
    {field_detector, 3},
    {field_id, 1},
    {field_preconditions, 4},
    {field_step_type, 0},
    {field_tag, 2},
  [242] =
    {field_detector, 3},
    {field_id, 1},
    {field_reaches, 4},
    {field_step_type, 0},
    {field_tag, 2},
  [247] =
    {field_detector, 2},
    {field_id, 1},
    {field_preconditions, 3},
    {field_reaches, 4},
    {field_step_type, 0},
  [252] =
    {field_body, 6},
    {field_extends, 2},
    {field_extends, 3},
    {field_id, 1},
    {field_meta, 4},
  [257] =
    {field_body, 7},
    {field_extends, 3},
    {field_extends, 4},
    {field_id, 2},
    {field_meta, 5},
  [262] =
    {field_id, 0},
  [263] =
    {field_left, 0},
    {field_operator, 1},
    {field_right, 2},
  [266] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_preconditions, 5},
    {field_step_type, 0},
  [272] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_reaches, 5},
    {field_step_type, 0},
  [278] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_step_type, 0},
    {field_ttc, 5},
  [284] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 5},
    {field_step_type, 0},
  [290] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 5},
    {field_id, 1},
    {field_step_type, 0},
  [296] =
    {field_id, 1},
    {field_type, 0},
  [298] =
    {field_context, 2},
    {field_name, 1},
    {field_type, 3},
  [301] =
    {field_context, 2},
    {field_name, 1},
    {field_ttc, 3},
  [304] =
    {field_context, 1},
    {field_ttc, 3},
    {field_type, 2},
  [307] =
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_ttc, 2},
  [313] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 5},
    {field_step_type, 0},
    {field_ttc, 2},
  [319] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_ttc, 2},
  [325] =
    {field_detector, 3},
    {field_id, 1},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_ttc, 2},
  [331] =
    {field_detector, 3},
    {field_id, 1},
    {field_meta, 2},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
  [337] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
  [343] =
    {field_id, 1},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [349] =
    {field_id, 1},
    {field_meta, 4},
    {field_preconditions, 5},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [355] =
    {field_id, 1},
    {field_meta, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [361] =
    {field_detector, 5},
    {field_id, 1},
    {field_meta, 4},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [367] =
    {field_detector, 4},
    {field_id, 1},
    {field_preconditions, 5},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [373] =
    {field_detector, 4},
    {field_id, 1},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [379] =
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 2},
  [385] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 5},
    {field_step_type, 0},
    {field_tag, 2},
  [391] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 2},
  [397] =
    {field_detector, 3},
    {field_id, 1},
    {field_preconditions, 4},
    {field_reaches, 5},
    {field_step_type, 0},
    {field_tag, 2},
  [403] =
    {field_expression, 0},
    {field_type_id, 2},
  [405] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
  [412] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_preconditions, 6},
    {field_step_type, 0},
    {field_ttc, 5},
  [419] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_ttc, 5},
  [426] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 6},
    {field_step_type, 0},
    {field_ttc, 5},
  [433] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_step_type, 0},
    {field_ttc, 5},
  [440] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 5},
    {field_preconditions, 6},
    {field_step_type, 0},
  [447] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 5},
    {field_reaches, 6},
    {field_step_type, 0},
  [454] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_meta, 5},
    {field_step_type, 0},
  [461] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 5},
    {field_id, 1},
    {field_preconditions, 6},
    {field_step_type, 0},
  [468] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 5},
    {field_id, 1},
    {field_reaches, 6},
    {field_step_type, 0},
  [475] =
    {field_context, 2},
    {field_name, 1},
    {field_ttc, 4},
    {field_type, 3},
  [479] =
    {field_id, 0},
    {field_values, 2},
  [481] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_ttc, 2},
  [488] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_preconditions, 6},
    {field_step_type, 0},
    {field_tag, 2},
  [495] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 2},
  [502] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [509] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 6},
    {field_step_type, 0},
    {field_tag, 2},
  [516] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 6},
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
  [523] =
    {field_id, 1},
    {field_meta, 4},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [530] =
    {field_detector, 5},
    {field_id, 1},
    {field_meta, 4},
    {field_preconditions, 6},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [537] =
    {field_detector, 5},
    {field_id, 1},
    {field_meta, 4},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [544] =
    {field_detector, 4},
    {field_id, 1},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [551] =
    {field_detector, 4},
    {field_id, 1},
    {field_meta, 3},
    {field_preconditions, 5},
    {field_reaches, 6},
    {field_step_type, 0},
    {field_tag, 2},
  [558] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_ttc, 5},
  [566] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 7},
    {field_step_type, 0},
    {field_ttc, 5},
  [574] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 6},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_ttc, 5},
  [582] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_step_type, 0},
    {field_ttc, 5},
  [590] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_preconditions, 7},
    {field_step_type, 0},
    {field_ttc, 5},
  [598] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_ttc, 5},
  [606] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 5},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
  [614] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_meta, 5},
    {field_preconditions, 7},
    {field_step_type, 0},
  [622] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_meta, 5},
    {field_reaches, 7},
    {field_step_type, 0},
  [630] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 5},
    {field_id, 1},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
  [638] =
    {field_id, 0},
    {field_values, 2},
    {field_values, 3},
  [641] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 2},
  [649] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_preconditions, 7},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [657] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [665] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 7},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [673] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [681] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 7},
    {field_step_type, 0},
    {field_tag, 2},
  [689] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 6},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 2},
  [697] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_step_type, 0},
    {field_tag, 2},
  [705] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 6},
    {field_id, 1},
    {field_preconditions, 7},
    {field_step_type, 0},
    {field_tag, 2},
  [713] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 6},
    {field_id, 1},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 2},
  [721] =
    {field_detector, 5},
    {field_id, 1},
    {field_meta, 4},
    {field_preconditions, 6},
    {field_reaches, 7},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 3},
  [729] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_ttc, 5},
  [738] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 8},
    {field_step_type, 0},
    {field_ttc, 5},
  [747] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_ttc, 5},
  [756] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_ttc, 5},
  [765] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 6},
    {field_id, 1},
    {field_meta, 5},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
  [774] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [783] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 7},
    {field_preconditions, 8},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [792] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [801] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 8},
    {field_id, 1},
    {field_meta, 7},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [810] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_preconditions, 8},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [819] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [828] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 2},
  [837] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 8},
    {field_step_type, 0},
    {field_tag, 2},
  [846] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 2},
  [855] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 6},
    {field_id, 1},
    {field_preconditions, 7},
    {field_reaches, 8},
    {field_step_type, 0},
    {field_tag, 2},
  [864] =
    {field_id, 6},
    {field_left_field_id, 2},
    {field_left_id, 0},
    {field_left_mult, 4},
    {field_right_field_id, 10},
    {field_right_id, 12},
    {field_right_mult, 8},
  [871] =
    {field_cias, 2},
    {field_cias, 3},
    {field_cias, 4},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 8},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_ttc, 5},
  [881] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_id, 1},
    {field_meta, 7},
    {field_preconditions, 8},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [891] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 8},
    {field_id, 1},
    {field_meta, 7},
    {field_preconditions, 9},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [901] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 8},
    {field_id, 1},
    {field_meta, 7},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [911] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_preconditions, 8},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
  [921] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 7},
    {field_id, 1},
    {field_meta, 6},
    {field_preconditions, 8},
    {field_reaches, 9},
    {field_step_type, 0},
    {field_tag, 2},
  [931] =
    {field_id, 6},
    {field_left_field_id, 2},
    {field_left_id, 0},
    {field_left_mult, 4},
    {field_meta, 13},
    {field_right_field_id, 10},
    {field_right_id, 12},
    {field_right_mult, 8},
  [939] =
    {field_cias, 3},
    {field_cias, 4},
    {field_cias, 5},
    {field_detector, 8},
    {field_id, 1},
    {field_meta, 7},
    {field_preconditions, 9},
    {field_reaches, 10},
    {field_step_type, 0},
    {field_tag, 2},
    {field_ttc, 6},
};

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

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

static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
  [0] = 0,
  [1] = 1,
  [2] = 2,
  [3] = 3,
  [4] = 4,
  [5] = 5,
  [6] = 6,
  [7] = 7,
  [8] = 8,
  [9] = 9,
  [10] = 10,
  [11] = 11,
  [12] = 12,
  [13] = 13,
  [14] = 14,
  [15] = 15,
  [16] = 16,
  [17] = 17,
  [18] = 18,
  [19] = 19,
  [20] = 20,
  [21] = 21,
  [22] = 22,
  [23] = 23,
  [24] = 24,
  [25] = 25,
  [26] = 26,
  [27] = 27,
  [28] = 28,
  [29] = 29,
  [30] = 30,
  [31] = 31,
  [32] = 32,
  [33] = 33,
  [34] = 34,
  [35] = 35,
  [36] = 36,
  [37] = 37,
  [38] = 38,
  [39] = 39,
  [40] = 40,
  [41] = 41,
  [42] = 42,
  [43] = 43,
  [44] = 44,
  [45] = 45,
  [46] = 46,
  [47] = 47,
  [48] = 48,
  [49] = 49,
  [50] = 50,
  [51] = 51,
  [52] = 52,
  [53] = 53,
  [54] = 54,
  [55] = 52,
  [56] = 56,
  [57] = 57,
  [58] = 58,
  [59] = 59,
  [60] = 60,
  [61] = 61,
  [62] = 62,
  [63] = 63,
  [64] = 64,
  [65] = 65,
  [66] = 66,
  [67] = 67,
  [68] = 68,
  [69] = 69,
  [70] = 70,
  [71] = 71,
  [72] = 72,
  [73] = 64,
  [74] = 74,
  [75] = 75,
  [76] = 76,
  [77] = 77,
  [78] = 78,
  [79] = 79,
  [80] = 80,
  [81] = 81,
  [82] = 82,
  [83] = 83,
  [84] = 84,
  [85] = 85,
  [86] = 86,
  [87] = 87,
  [88] = 88,
  [89] = 89,
  [90] = 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] = 119,
  [120] = 120,
  [121] = 121,
  [122] = 122,
  [123] = 123,
  [124] = 124,
  [125] = 125,
  [126] = 126,
  [127] = 127,
  [128] = 128,
  [129] = 129,
  [130] = 130,
  [131] = 131,
  [132] = 95,
  [133] = 133,
  [134] = 134,
  [135] = 135,
  [136] = 48,
  [137] = 137,
  [138] = 138,
  [139] = 139,
  [140] = 140,
  [141] = 141,
  [142] = 142,
  [143] = 143,
  [144] = 144,
  [145] = 145,
  [146] = 146,
  [147] = 147,
  [148] = 148,
  [149] = 149,
  [150] = 150,
  [151] = 151,
  [152] = 152,
  [153] = 153,
  [154] = 154,
  [155] = 155,
  [156] = 156,
  [157] = 157,
  [158] = 158,
  [159] = 159,
  [160] = 160,
  [161] = 161,
  [162] = 162,
  [163] = 163,
  [164] = 164,
  [165] = 165,
  [166] = 166,
  [167] = 167,
  [168] = 168,
  [169] = 169,
  [170] = 170,
  [171] = 171,
  [172] = 172,
  [173] = 173,
  [174] = 174,
  [175] = 175,
  [176] = 176,
  [177] = 177,
  [178] = 178,
  [179] = 179,
  [180] = 180,
  [181] = 181,
  [182] = 182,
  [183] = 183,
  [184] = 184,
  [185] = 185,
  [186] = 186,
  [187] = 187,
  [188] = 188,
  [189] = 189,
  [190] = 190,
  [191] = 191,
  [192] = 192,
  [193] = 193,
  [194] = 194,
  [195] = 195,
  [196] = 196,
  [197] = 197,
  [198] = 198,
  [199] = 199,
  [200] = 200,
  [201] = 201,
  [202] = 202,
  [203] = 203,
  [204] = 204,
  [205] = 205,
  [206] = 206,
  [207] = 207,
  [208] = 208,
  [209] = 209,
  [210] = 210,
  [211] = 211,
  [212] = 212,
  [213] = 213,
  [214] = 214,
  [215] = 215,
  [216] = 216,
  [217] = 217,
  [218] = 218,
  [219] = 219,
  [220] = 220,
  [221] = 221,
  [222] = 222,
  [223] = 223,
  [224] = 224,
  [225] = 225,
  [226] = 226,
  [227] = 227,
  [228] = 228,
  [229] = 229,
  [230] = 230,
  [231] = 231,
  [232] = 232,
  [233] = 233,
  [234] = 234,
  [235] = 235,
  [236] = 65,
  [237] = 237,
  [238] = 238,
  [239] = 239,
  [240] = 240,
  [241] = 241,
  [242] = 242,
  [243] = 243,
  [244] = 244,
  [245] = 245,
  [246] = 246,
  [247] = 247,
  [248] = 248,
  [249] = 249,
  [250] = 250,
  [251] = 251,
  [252] = 252,
  [253] = 253,
  [254] = 254,
  [255] = 255,
  [256] = 256,
  [257] = 257,
  [258] = 258,
  [259] = 259,
  [260] = 260,
  [261] = 261,
  [262] = 262,
  [263] = 263,
  [264] = 264,
  [265] = 265,
  [266] = 266,
  [267] = 267,
  [268] = 268,
  [269] = 269,
  [270] = 270,
  [271] = 271,
  [272] = 272,
  [273] = 273,
  [274] = 274,
  [275] = 275,
  [276] = 276,
  [277] = 277,
  [278] = 278,
  [279] = 279,
  [280] = 280,
  [281] = 281,
  [282] = 282,
  [283] = 283,
  [284] = 284,
  [285] = 285,
  [286] = 286,
  [287] = 287,
  [288] = 288,
  [289] = 289,
  [290] = 290,
  [291] = 291,
  [292] = 292,
  [293] = 293,
  [294] = 294,
  [295] = 295,
  [296] = 296,
  [297] = 297,
  [298] = 298,
  [299] = 299,
  [300] = 300,
  [301] = 301,
  [302] = 302,
  [303] = 303,
  [304] = 304,
  [305] = 305,
  [306] = 306,
  [307] = 307,
  [308] = 308,
  [309] = 309,
  [310] = 310,
  [311] = 311,
  [312] = 312,
  [313] = 313,
  [314] = 314,
  [315] = 315,
  [316] = 316,
  [317] = 317,
  [318] = 318,
  [319] = 319,
  [320] = 320,
  [321] = 321,
  [322] = 291,
  [323] = 323,
  [324] = 299,
  [325] = 320,
};

static bool ts_lex(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      if (eof) ADVANCE(28);
      ADVANCE_MAP(
        '!', 41,
        '"', 4,
        '#', 64,
        '(', 45,
        ')', 46,
        '*', 58,
        '+', 54,
        ',', 40,
        '-', 56,
        '.', 44,
        '/', 60,
        ':', 65,
        '<', 13,
        '=', 36,
        '@', 37,
        'E', 39,
        '[', 51,
        '\\', 19,
        ']', 52,
        '^', 61,
        'l', 75,
        '{', 32,
        '}', 33,
        '&', 38,
        '|', 38,
        'A', 77,
        'C', 77,
        'I', 77,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(0);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72);
      if (('B' <= lookahead && lookahead <= '_') ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(77);
      END_STATE();
    case 1:
      ADVANCE_MAP(
        '!', 41,
        '+', 20,
        '-', 21,
        '/', 9,
        '<', 15,
        '@', 37,
        'E', 39,
        '[', 51,
        'l', 75,
        '{', 32,
        '}', 33,
        '#', 38,
        '&', 38,
        '|', 38,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(1);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(77);
      END_STATE();
    case 2:
      ADVANCE_MAP(
        '!', 41,
        '+', 20,
        '-', 21,
        '/', 9,
        '<', 15,
        '[', 51,
        'l', 24,
        '}', 33,
        '#', 38,
        '&', 38,
        'E', 38,
        '|', 38,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(2);
      END_STATE();
    case 3:
      ADVANCE_MAP(
        '!', 23,
        '(', 45,
        ')', 46,
        '*', 58,
        '+', 20,
        ',', 40,
        '-', 57,
        '.', 43,
        '/', 8,
        '[', 51,
        '\\', 19,
        'l', 24,
        '}', 33,
        'A', 78,
        'C', 78,
        'I', 78,
        '#', 38,
        '&', 38,
        'E', 38,
        '|', 38,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(3);
      END_STATE();
    case 4:
      if (lookahead == '"') ADVANCE(69);
      if (lookahead == '\\') ADVANCE(5);
      if (lookahead != 0) ADVANCE(4);
      END_STATE();
    case 5:
      if (lookahead == '"') ADVANCE(70);
      if (lookahead == '\\') ADVANCE(5);
      if (lookahead != 0) ADVANCE(4);
      END_STATE();
    case 6:
      ADVANCE_MAP(
        '(', 45,
        ')', 46,
        '-', 12,
        '.', 17,
        '/', 7,
        ':', 26,
        '<', 16,
        '[', 51,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(6);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(71);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(77);
      END_STATE();
    case 7:
      if (lookahead == '*') ADVANCE(11);
      if (lookahead == '/') ADVANCE(31);
      END_STATE();
    case 8:
      if (lookahead == '*') ADVANCE(11);
      if (lookahead == '/') ADVANCE(31);
      if (lookahead == '\\') ADVANCE(63);
      END_STATE();
    case 9:
      if (lookahead == '*') ADVANCE(11);
      if (lookahead == '/') ADVANCE(30);
      END_STATE();
    case 10:
      if (lookahead == '*') ADVANCE(10);
      if (lookahead == '/') ADVANCE(29);
      if (lookahead != 0) ADVANCE(11);
      END_STATE();
    case 11:
      if (lookahead == '*') ADVANCE(10);
      if (lookahead != 0) ADVANCE(11);
      END_STATE();
    case 12:
      if (lookahead == '-') ADVANCE(22);
      END_STATE();
    case 13:
      if (lookahead == '-') ADVANCE(48);
      END_STATE();
    case 14:
      if (lookahead == '-') ADVANCE(66);
      END_STATE();
    case 15:
      if (lookahead == '-') ADVANCE(47);
      END_STATE();
    case 16:
      if (lookahead == '-') ADVANCE(14);
      END_STATE();
    case 17:
      if (lookahead == '.') ADVANCE(68);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(74);
      END_STATE();
    case 18:
      if (lookahead == '.') ADVANCE(74);
      END_STATE();
    case 19:
      if (lookahead == '/') ADVANCE(62);
      END_STATE();
    case 20:
      if (lookahead == '>') ADVANCE(49);
      END_STATE();
    case 21:
      if (lookahead == '>') ADVANCE(50);
      END_STATE();
    case 22:
      if (lookahead == '>') ADVANCE(67);
      END_STATE();
    case 23:
      if (lookahead == 'E') ADVANCE(38);
      END_STATE();
    case 24:
      if (lookahead == 'e') ADVANCE(25);
      END_STATE();
    case 25:
      if (lookahead == 't') ADVANCE(34);
      END_STATE();
    case 26:
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(73);
      END_STATE();
    case 27:
      if (eof) ADVANCE(28);
      ADVANCE_MAP(
        '#', 64,
        '(', 45,
        ')', 46,
        '*', 58,
        '+', 53,
        '-', 55,
        '.', 43,
        '/', 59,
        '<', 16,
        '[', 51,
        ']', 52,
        '^', 61,
        '{', 32,
        '}', 33,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(27);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(77);
      END_STATE();
    case 28:
      ACCEPT_TOKEN(ts_builtin_sym_end);
      END_STATE();
    case 29:
      ACCEPT_TOKEN(sym_comment);
      END_STATE();
    case 30:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '!') ADVANCE(42);
      if (lookahead != 0 &&
          lookahead != '\n' &&
          lookahead != '\r' &&
          lookahead != 0x2028 &&
          lookahead != 0x2029) ADVANCE(31);
      END_STATE();
    case 31:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead != 0 &&
          lookahead != '\n' &&
          lookahead != '\r' &&
          lookahead != 0x2028 &&
          lookahead != 0x2029) ADVANCE(31);
      END_STATE();
    case 32:
      ACCEPT_TOKEN(anon_sym_LBRACE);
      END_STATE();
    case 33:
      ACCEPT_TOKEN(anon_sym_RBRACE);
      END_STATE();
    case 34:
      ACCEPT_TOKEN(anon_sym_let);
      END_STATE();
    case 35:
      ACCEPT_TOKEN(anon_sym_let);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(77);
      END_STATE();
    case 36:
      ACCEPT_TOKEN(anon_sym_EQ);
      END_STATE();
    case 37:
      ACCEPT_TOKEN(anon_sym_AT);
      END_STATE();
    case 38:
      ACCEPT_TOKEN(sym_step_type);
      END_STATE();
    case 39:
      ACCEPT_TOKEN(sym_step_type);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(77);
      END_STATE();
    case 40:
      ACCEPT_TOKEN(anon_sym_COMMA);
      END_STATE();
    case 41:
      ACCEPT_TOKEN(anon_sym_BANG);
      if (lookahead == 'E') ADVANCE(38);
      END_STATE();
    case 42:
      ACCEPT_TOKEN(anon_sym_SLASH_SLASH_BANG);
      END_STATE();
    case 43:
      ACCEPT_TOKEN(anon_sym_DOT);
      END_STATE();
    case 44:
      ACCEPT_TOKEN(anon_sym_DOT);
      if (lookahead == '.') ADVANCE(68);
      END_STATE();
    case 45:
      ACCEPT_TOKEN(anon_sym_LPAREN);
      END_STATE();
    case 46:
      ACCEPT_TOKEN(anon_sym_RPAREN);
      END_STATE();
    case 47:
      ACCEPT_TOKEN(anon_sym_LT_DASH);
      END_STATE();
    case 48:
      ACCEPT_TOKEN(anon_sym_LT_DASH);
      if (lookahead == '-') ADVANCE(66);
      END_STATE();
    case 49:
      ACCEPT_TOKEN(anon_sym_PLUS_GT);
      END_STATE();
    case 50:
      ACCEPT_TOKEN(anon_sym_DASH_GT);
      END_STATE();
    case 51:
      ACCEPT_TOKEN(anon_sym_LBRACK);
      END_STATE();
    case 52:
      ACCEPT_TOKEN(anon_sym_RBRACK);
      END_STATE();
    case 53:
      ACCEPT_TOKEN(anon_sym_PLUS);
      END_STATE();
    case 54:
      ACCEPT_TOKEN(anon_sym_PLUS);
      if (lookahead == '>') ADVANCE(49);
      END_STATE();
    case 55:
      ACCEPT_TOKEN(anon_sym_DASH);
      END_STATE();
    case 56:
      ACCEPT_TOKEN(anon_sym_DASH);
      if (lookahead == '-') ADVANCE(22);
      if (lookahead == '>') ADVANCE(50);
      END_STATE();
    case 57:
      ACCEPT_TOKEN(anon_sym_DASH);
      if (lookahead == '>') ADVANCE(50);
      END_STATE();
    case 58:
      ACCEPT_TOKEN(anon_sym_STAR);
      END_STATE();
    case 59:
      ACCEPT_TOKEN(anon_sym_SLASH);
      if (lookahead == '*') ADVANCE(11);
      if (lookahead == '/') ADVANCE(31);
      END_STATE();
    case 60:
      ACCEPT_TOKEN(anon_sym_SLASH);
      if (lookahead == '*') ADVANCE(11);
      if (lookahead == '/') ADVANCE(31);
      if (lookahead == '\\') ADVANCE(63);
      END_STATE();
    case 61:
      ACCEPT_TOKEN(anon_sym_CARET);
      END_STATE();
    case 62:
      ACCEPT_TOKEN(anon_sym_BSLASH_SLASH);
      END_STATE();
    case 63:
      ACCEPT_TOKEN(anon_sym_SLASH_BSLASH);
      END_STATE();
    case 64:
      ACCEPT_TOKEN(anon_sym_POUND);
      END_STATE();
    case 65:
      ACCEPT_TOKEN(anon_sym_COLON);
      END_STATE();
    case 66:
      ACCEPT_TOKEN(anon_sym_LT_DASH_DASH);
      END_STATE();
    case 67:
      ACCEPT_TOKEN(anon_sym_DASH_DASH_GT);
      END_STATE();
    case 68:
      ACCEPT_TOKEN(anon_sym_DOT_DOT);
      END_STATE();
    case 69:
      ACCEPT_TOKEN(sym_string);
      END_STATE();
    case 70:
      ACCEPT_TOKEN(sym_string);
      if (lookahead == '"') ADVANCE(69);
      if (lookahead == '\\') ADVANCE(5);
      if (lookahead != 0) ADVANCE(4);
      END_STATE();
    case 71:
      ACCEPT_TOKEN(sym_integer);
      if (lookahead == '.') ADVANCE(74);
      if (lookahead == ':') ADVANCE(18);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(71);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(77);
      END_STATE();
    case 72:
      ACCEPT_TOKEN(sym_integer);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(77);
      END_STATE();
    case 73:
      ACCEPT_TOKEN(sym_float);
      if (lookahead == '.') ADVANCE(74);
      if (lookahead == ':') ADVANCE(18);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(73);
      END_STATE();
    case 74:
      ACCEPT_TOKEN(sym_float);
      if (('0' <= lookahead && lookahead <= '9')) ADVANCE(74);
      END_STATE();
    case 75:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'e') ADVANCE(76);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(77);
      END_STATE();
    case 76:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 't') ADVANCE(35);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(77);
      END_STATE();
    case 77:
      ACCEPT_TOKEN(sym_identifier);
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(77);
      END_STATE();
    case 78:
      ACCEPT_TOKEN(sym_cia);
      END_STATE();
    default:
      return false;
  }
}

static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      if (lookahead == 'a') ADVANCE(1);
      if (lookahead == 'c') ADVANCE(2);
      if (lookahead == 'e') ADVANCE(3);
      if (lookahead == 'i') ADVANCE(4);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') SKIP(0);
      END_STATE();
    case 1:
      if (lookahead == 'b') ADVANCE(5);
      if (lookahead == 's') ADVANCE(6);
      END_STATE();
    case 2:
      if (lookahead == 'a') ADVANCE(7);
      END_STATE();
    case 3:
      if (lookahead == 'x') ADVANCE(8);
      END_STATE();
    case 4:
      if (lookahead == 'n') ADVANCE(9);
      END_STATE();
    case 5:
      if (lookahead == 's') ADVANCE(10);
      END_STATE();
    case 6:
      if (lookahead == 's') ADVANCE(11);
      END_STATE();
    case 7:
      if (lookahead == 't') ADVANCE(12);
      END_STATE();
    case 8:
      if (lookahead == 't') ADVANCE(13);
      END_STATE();
    case 9:
      if (lookahead == 'c') ADVANCE(14);
      if (lookahead == 'f') ADVANCE(15);
      END_STATE();
    case 10:
      if (lookahead == 't') ADVANCE(16);
      END_STATE();
    case 11:
      if (lookahead == 'e') ADVANCE(17);
      if (lookahead == 'o') ADVANCE(18);
      END_STATE();
    case 12:
      if (lookahead == 'e') ADVANCE(19);
      END_STATE();
    case 13:
      if (lookahead == 'e') ADVANCE(20);
      END_STATE();
    case 14:
      if (lookahead == 'l') ADVANCE(21);
      END_STATE();
    case 15:
      if (lookahead == 'o') ADVANCE(22);
      END_STATE();
    case 16:
      if (lookahead == 'r') ADVANCE(23);
      END_STATE();
    case 17:
      if (lookahead == 't') ADVANCE(24);
      END_STATE();
    case 18:
      if (lookahead == 'c') ADVANCE(25);
      END_STATE();
    case 19:
      if (lookahead == 'g') ADVANCE(26);
      END_STATE();
    case 20:
      if (lookahead == 'n') ADVANCE(27);
      END_STATE();
    case 21:
      if (lookahead == 'u') ADVANCE(28);
      END_STATE();
    case 22:
      ACCEPT_TOKEN(anon_sym_info);
      END_STATE();
    case 23:
      if (lookahead == 'a') ADVANCE(29);
      END_STATE();
    case 24:
      ACCEPT_TOKEN(anon_sym_asset);
      END_STATE();
    case 25:
      if (lookahead == 'i') ADVANCE(30);
      END_STATE();
    case 26:
      if (lookahead == 'o') ADVANCE(31);
      END_STATE();
    case 27:
      if (lookahead == 'd') ADVANCE(32);
      END_STATE();
    case 28:
      if (lookahead == 'd') ADVANCE(33);
      END_STATE();
    case 29:
      if (lookahead == 'c') ADVANCE(34);
      END_STATE();
    case 30:
      if (lookahead == 'a') ADVANCE(35);
      END_STATE();
    case 31:
      if (lookahead == 'r') ADVANCE(36);
      END_STATE();
    case 32:
      if (lookahead == 's') ADVANCE(37);
      END_STATE();
    case 33:
      if (lookahead == 'e') ADVANCE(38);
      END_STATE();
    case 34:
      if (lookahead == 't') ADVANCE(39);
      END_STATE();
    case 35:
      if (lookahead == 't') ADVANCE(40);
      END_STATE();
    case 36:
      if (lookahead == 'y') ADVANCE(41);
      END_STATE();
    case 37:
      ACCEPT_TOKEN(anon_sym_extends);
      END_STATE();
    case 38:
      ACCEPT_TOKEN(anon_sym_include);
      END_STATE();
    case 39:
      ACCEPT_TOKEN(anon_sym_abstract);
      END_STATE();
    case 40:
      if (lookahead == 'i') ADVANCE(42);
      END_STATE();
    case 41:
      ACCEPT_TOKEN(anon_sym_category);
      END_STATE();
    case 42:
      if (lookahead == 'o') ADVANCE(43);
      END_STATE();
    case 43:
      if (lookahead == 'n') ADVANCE(44);
      END_STATE();
    case 44:
      if (lookahead == 's') ADVANCE(45);
      END_STATE();
    case 45:
      ACCEPT_TOKEN(anon_sym_associations);
      END_STATE();
    default:
      return false;
  }
}

static const TSLexerMode ts_lex_modes[STATE_COUNT] = {
  [0] = {.lex_state = 0},
  [1] = {.lex_state = 27},
  [2] = {.lex_state = 1},
  [3] = {.lex_state = 1},
  [4] = {.lex_state = 1},
  [5] = {.lex_state = 1},
  [6] = {.lex_state = 1},
  [7] = {.lex_state = 1},
  [8] = {.lex_state = 1},
  [9] = {.lex_state = 1},
  [10] = {.lex_state = 1},
  [11] = {.lex_state = 1},
  [12] = {.lex_state = 1},
  [13] = {.lex_state = 1},
  [14] = {.lex_state = 1},
  [15] = {.lex_state = 1},
  [16] = {.lex_state = 1},
  [17] = {.lex_state = 1},
  [18] = {.lex_state = 3},
  [19] = {.lex_state = 1},
  [20] = {.lex_state = 3},
  [21] = {.lex_state = 3},
  [22] = {.lex_state = 3},
  [23] = {.lex_state = 3},
  [24] = {.lex_state = 3},
  [25] = {.lex_state = 3},
  [26] = {.lex_state = 2},
  [27] = {.lex_state = 2},
  [28] = {.lex_state = 2},
  [29] = {.lex_state = 2},
  [30] = {.lex_state = 2},
  [31] = {.lex_state = 2},
  [32] = {.lex_state = 2},
  [33] = {.lex_state = 2},
  [34] = {.lex_state = 2},
  [35] = {.lex_state = 2},
  [36] = {.lex_state = 2},
  [37] = {.lex_state = 2},
  [38] = {.lex_state = 3},
  [39] = {.lex_state = 2},
  [40] = {.lex_state = 2},
  [41] = {.lex_state = 1},
  [42] = {.lex_state = 2},
  [43] = {.lex_state = 2},
  [44] = {.lex_state = 1},
  [45] = {.lex_state = 27},
  [46] = {.lex_state = 27},
  [47] = {.lex_state = 1},
  [48] = {.lex_state = 1},
  [49] = {.lex_state = 1},
  [50] = {.lex_state = 6},
  [51] = {.lex_state = 2},
  [52] = {.lex_state = 6},
  [53] = {.lex_state = 1},
  [54] = {.lex_state = 2},
  [55] = {.lex_state = 6},
  [56] = {.lex_state = 6},
  [57] = {.lex_state = 6},
  [58] = {.lex_state = 2},
  [59] = {.lex_state = 6},
  [60] = {.lex_state = 27},
  [61] = {.lex_state = 27},
  [62] = {.lex_state = 27},
  [63] = {.lex_state = 27},
  [64] = {.lex_state = 1},
  [65] = {.lex_state = 1},
  [66] = {.lex_state = 27},
  [67] = {.lex_state = 2},
  [68] = {.lex_state = 2},
  [69] = {.lex_state = 27},
  [70] = {.lex_state = 2},
  [71] = {.lex_state = 27},
  [72] = {.lex_state = 2},
  [73] = {.lex_state = 2},
  [74] = {.lex_state = 27},
  [75] = {.lex_state = 27},
  [76] = {.lex_state = 3},
  [77] = {.lex_state = 3},
  [78] = {.lex_state = 3},
  [79] = {.lex_state = 27},
  [80] = {.lex_state = 3},
  [81] = {.lex_state = 3},
  [82] = {.lex_state = 27},
  [83] = {.lex_state = 27},
  [84] = {.lex_state = 27},
  [85] = {.lex_state = 27},
  [86] = {.lex_state = 3},
  [87] = {.lex_state = 27},
  [88] = {.lex_state = 3},
  [89] = {.lex_state = 3},
  [90] = {.lex_state = 3},
  [91] = {.lex_state = 3},
  [92] = {.lex_state = 3},
  [93] = {.lex_state = 3},
  [94] = {.lex_state = 3},
  [95] = {.lex_state = 27},
  [96] = {.lex_state = 3},
  [97] = {.lex_state = 3},
  [98] = {.lex_state = 3},
  [99] = {.lex_state = 3},
  [100] = {.lex_state = 0},
  [101] = {.lex_state = 0},
  [102] = {.lex_state = 27},
  [103] = {.lex_state = 3},
  [104] = {.lex_state = 3},
  [105] = {.lex_state = 3},
  [106] = {.lex_state = 3},
  [107] = {.lex_state = 3},
  [108] = {.lex_state = 3},
  [109] = {.lex_state = 3},
  [110] = {.lex_state = 3},
  [111] = {.lex_state = 3},
  [112] = {.lex_state = 3},
  [113] = {.lex_state = 3},
  [114] = {.lex_state = 3},
  [115] = {.lex_state = 3},
  [116] = {.lex_state = 3},
  [117] = {.lex_state = 3},
  [118] = {.lex_state = 3},
  [119] = {.lex_state = 3},
  [120] = {.lex_state = 3},
  [121] = {.lex_state = 3},
  [122] = {.lex_state = 3},
  [123] = {.lex_state = 3},
  [124] = {.lex_state = 3},
  [125] = {.lex_state = 3},
  [126] = {.lex_state = 3},
  [127] = {.lex_state = 3},
  [128] = {.lex_state = 3},
  [129] = {.lex_state = 3},
  [130] = {.lex_state = 3},
  [131] = {.lex_state = 3},
  [132] = {.lex_state = 27},
  [133] = {.lex_state = 3},
  [134] = {.lex_state = 27},
  [135] = {.lex_state = 27},
  [136] = {.lex_state = 27},
  [137] = {.lex_state = 27},
  [138] = {.lex_state = 27},
  [139] = {.lex_state = 27},
  [140] = {.lex_state = 27},
  [141] = {.lex_state = 27},
  [142] = {.lex_state = 27},
  [143] = {.lex_state = 27},
  [144] = {.lex_state = 27},
  [145] = {.lex_state = 27},
  [146] = {.lex_state = 27},
  [147] = {.lex_state = 27},
  [148] = {.lex_state = 27},
  [149] = {.lex_state = 27},
  [150] = {.lex_state = 3},
  [151] = {.lex_state = 27},
  [152] = {.lex_state = 3},
  [153] = {.lex_state = 27},
  [154] = {.lex_state = 27},
  [155] = {.lex_state = 0},
  [156] = {.lex_state = 6},
  [157] = {.lex_state = 27},
  [158] = {.lex_state = 27},
  [159] = {.lex_state = 27},
  [160] = {.lex_state = 27},
  [161] = {.lex_state = 27},
  [162] = {.lex_state = 27},
  [163] = {.lex_state = 27},
  [164] = {.lex_state = 27},
  [165] = {.lex_state = 27},
  [166] = {.lex_state = 27},
  [167] = {.lex_state = 27},
  [168] = {.lex_state = 27},
  [169] = {.lex_state = 3},
  [170] = {.lex_state = 3},
  [171] = {.lex_state = 3},
  [172] = {.lex_state = 3},
  [173] = {.lex_state = 3},
  [174] = {.lex_state = 3},
  [175] = {.lex_state = 27},
  [176] = {.lex_state = 3},
  [177] = {.lex_state = 3},
  [178] = {.lex_state = 3},
  [179] = {.lex_state = 3},
  [180] = {.lex_state = 3},
  [181] = {.lex_state = 27},
  [182] = {.lex_state = 27},
  [183] = {.lex_state = 27},
  [184] = {.lex_state = 6},
  [185] = {.lex_state = 0},
  [186] = {.lex_state = 3},
  [187] = {.lex_state = 6},
  [188] = {.lex_state = 27},
  [189] = {.lex_state = 0},
  [190] = {.lex_state = 27},
  [191] = {.lex_state = 3},
  [192] = {.lex_state = 27},
  [193] = {.lex_state = 27},
  [194] = {.lex_state = 0},
  [195] = {.lex_state = 27},
  [196] = {.lex_state = 27},
  [197] = {.lex_state = 3},
  [198] = {.lex_state = 3},
  [199] = {.lex_state = 3},
  [200] = {.lex_state = 3},
  [201] = {.lex_state = 27},
  [202] = {.lex_state = 3},
  [203] = {.lex_state = 27},
  [204] = {.lex_state = 3},
  [205] = {.lex_state = 3},
  [206] = {.lex_state = 3},
  [207] = {.lex_state = 3},
  [208] = {.lex_state = 3},
  [209] = {.lex_state = 3},
  [210] = {.lex_state = 27},
  [211] = {.lex_state = 27},
  [212] = {.lex_state = 27},
  [213] = {.lex_state = 3},
  [214] = {.lex_state = 27},
  [215] = {.lex_state = 0},
  [216] = {.lex_state = 6},
  [217] = {.lex_state = 0},
  [218] = {.lex_state = 3},
  [219] = {.lex_state = 3},
  [220] = {.lex_state = 0},
  [221] = {.lex_state = 3},
  [222] = {.lex_state = 3},
  [223] = {.lex_state = 3},
  [224] = {.lex_state = 3},
  [225] = {.lex_state = 3},
  [226] = {.lex_state = 3},
  [227] = {.lex_state = 0},
  [228] = {.lex_state = 3},
  [229] = {.lex_state = 3},
  [230] = {.lex_state = 27},
  [231] = {.lex_state = 3},
  [232] = {.lex_state = 3},
  [233] = {.lex_state = 0},
  [234] = {.lex_state = 3},
  [235] = {.lex_state = 3},
  [236] = {.lex_state = 27},
  [237] = {.lex_state = 3},
  [238] = {.lex_state = 3},
  [239] = {.lex_state = 3},
  [240] = {.lex_state = 3},
  [241] = {.lex_state = 3},
  [242] = {.lex_state = 3},
  [243] = {.lex_state = 3},
  [244] = {.lex_state = 3},
  [245] = {.lex_state = 3},
  [246] = {.lex_state = 3},
  [247] = {.lex_state = 3},
  [248] = {.lex_state = 3},
  [249] = {.lex_state = 3},
  [250] = {.lex_state = 3},
  [251] = {.lex_state = 3},
  [252] = {.lex_state = 3},
  [253] = {.lex_state = 3},
  [254] = {.lex_state = 3},
  [255] = {.lex_state = 3},
  [256] = {.lex_state = 0},
  [257] = {.lex_state = 3},
  [258] = {.lex_state = 3},
  [259] = {.lex_state = 3},
  [260] = {.lex_state = 27},
  [261] = {.lex_state = 3},
  [262] = {.lex_state = 3},
  [263] = {.lex_state = 27},
  [264] = {.lex_state = 3},
  [265] = {.lex_state = 3},
  [266] = {.lex_state = 0},
  [267] = {.lex_state = 27},
  [268] = {.lex_state = 3},
  [269] = {.lex_state = 27},
  [270] = {.lex_state = 0},
  [271] = {.lex_state = 0},
  [272] = {.lex_state = 27},
  [273] = {.lex_state = 27},
  [274] = {.lex_state = 27},
  [275] = {.lex_state = 0},
  [276] = {.lex_state = 3},
  [277] = {.lex_state = 0},
  [278] = {.lex_state = 0},
  [279] = {.lex_state = 27},
  [280] = {.lex_state = 27},
  [281] = {.lex_state = 0},
  [282] = {.lex_state = 27},
  [283] = {.lex_state = 0},
  [284] = {.lex_state = 27},
  [285] = {.lex_state = 27},
  [286] = {.lex_state = 27},
  [287] = {.lex_state = 6},
  [288] = {.lex_state = 0},
  [289] = {.lex_state = 0},
  [290] = {.lex_state = 0},
  [291] = {.lex_state = 0},
  [292] = {.lex_state = 27},
  [293] = {.lex_state = 27},
  [294] = {.lex_state = 27},
  [295] = {.lex_state = 0},
  [296] = {.lex_state = 0},
  [297] = {.lex_state = 27},
  [298] = {.lex_state = 0},
  [299] = {.lex_state = 27},
  [300] = {.lex_state = 27},
  [301] = {.lex_state = 27},
  [302] = {.lex_state = 27},
  [303] = {.lex_state = 0},
  [304] = {.lex_state = 0},
  [305] = {.lex_state = 0},
  [306] = {.lex_state = 0},
  [307] = {.lex_state = 0},
  [308] = {.lex_state = 27},
  [309] = {.lex_state = 0},
  [310] = {.lex_state = 0},
  [311] = {.lex_state = 0},
  [312] = {.lex_state = 3},
  [313] = {.lex_state = 0},
  [314] = {.lex_state = 27},
  [315] = {.lex_state = 27},
  [316] = {.lex_state = 27},
  [317] = {.lex_state = 0},
  [318] = {.lex_state = 0},
  [319] = {.lex_state = 27},
  [320] = {.lex_state = 0},
  [321] = {.lex_state = 0},
  [322] = {.lex_state = 0},
  [323] = {.lex_state = 0},
  [324] = {.lex_state = 27},
  [325] = {.lex_state = 0},
};

static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
  [STATE(0)] = {
    [ts_builtin_sym_end] = ACTIONS(1),
    [sym_identifier] = ACTIONS(1),
    [sym_comment] = ACTIONS(3),
    [anon_sym_include] = ACTIONS(1),
    [anon_sym_category] = ACTIONS(1),
    [anon_sym_LBRACE] = ACTIONS(1),
    [anon_sym_RBRACE] = ACTIONS(1),
    [anon_sym_abstract] = ACTIONS(1),
    [anon_sym_asset] = ACTIONS(1),
    [anon_sym_extends] = ACTIONS(1),
    [anon_sym_let] = ACTIONS(1),
    [anon_sym_EQ] = ACTIONS(1),
    [anon_sym_AT] = ACTIONS(1),
    [sym_step_type] = ACTIONS(1),
    [anon_sym_COMMA] = ACTIONS(1),
    [anon_sym_BANG] = ACTIONS(1),
    [anon_sym_DOT] = ACTIONS(1),
    [anon_sym_LPAREN] = ACTIONS(1),
    [anon_sym_RPAREN] = ACTIONS(1),
    [anon_sym_LT_DASH] = ACTIONS(1),
    [anon_sym_PLUS_GT] = ACTIONS(1),
    [anon_sym_DASH_GT] = ACTIONS(1),
    [anon_sym_LBRACK] = ACTIONS(1),
    [anon_sym_RBRACK] = ACTIONS(1),
    [anon_sym_PLUS] = ACTIONS(1),
    [anon_sym_DASH] = ACTIONS(1),
    [anon_sym_STAR] = ACTIONS(1),
    [anon_sym_SLASH] = ACTIONS(1),
    [anon_sym_CARET] = ACTIONS(1),
    [anon_sym_BSLASH_SLASH] = ACTIONS(1),
    [anon_sym_SLASH_BSLASH] = ACTIONS(1),
    [anon_sym_POUND] = ACTIONS(1),
    [anon_sym_COLON] = ACTIONS(1),
    [anon_sym_associations] = ACTIONS(1),
    [anon_sym_LT_DASH_DASH] = ACTIONS(1),
    [anon_sym_DASH_DASH_GT] = ACTIONS(1),
    [anon_sym_DOT_DOT] = ACTIONS(1),
    [anon_sym_info] = ACTIONS(1),
    [sym_string] = ACTIONS(1),
    [sym_integer] = ACTIONS(1),
    [sym_cia] = ACTIONS(1),
  },
  [STATE(1)] = {
    [sym_source_file] = STATE(307),
    [sym_declaration] = STATE(46),
    [sym_include_declaration] = STATE(143),
    [sym_category_declaration] = STATE(143),
    [sym_define_declaration] = STATE(143),
    [sym_associations_declaration] = STATE(143),
    [aux_sym_source_file_repeat1] = STATE(46),
    [ts_builtin_sym_end] = ACTIONS(5),
    [sym_comment] = ACTIONS(3),
    [anon_sym_include] = ACTIONS(7),
    [anon_sym_category] = ACTIONS(9),
    [anon_sym_POUND] = ACTIONS(11),
    [anon_sym_associations] = ACTIONS(13),
  },
};

static const uint16_t ts_small_parse_table[] = {
  [0] = 17,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(19), 1,
      anon_sym_LBRACE,
    ACTIONS(21), 1,
      anon_sym_RBRACE,
    ACTIONS(25), 1,
      anon_sym_AT,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(35), 1,
      anon_sym_LBRACK,
    STATE(3), 1,
      aux_sym_attack_step_repeat1,
    STATE(7), 1,
      sym_ttc,
    STATE(126), 1,
      sym_preconditions,
    STATE(239), 1,
      sym_reaching,
    ACTIONS(23), 2,
      anon_sym_let,
      sym_step_type,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(6), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(29), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [56] = 17,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(25), 1,
      anon_sym_AT,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(35), 1,
      anon_sym_LBRACK,
    ACTIONS(37), 1,
      anon_sym_LBRACE,
    ACTIONS(39), 1,
      anon_sym_RBRACE,
    STATE(9), 1,
      sym_ttc,
    STATE(19), 1,
      aux_sym_attack_step_repeat1,
    STATE(98), 1,
      sym_preconditions,
    STATE(177), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(41), 2,
      anon_sym_let,
      sym_step_type,
    STATE(10), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(28), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [112] = 14,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(35), 1,
      anon_sym_LBRACK,
    ACTIONS(43), 1,
      anon_sym_RBRACE,
    STATE(14), 1,
      sym_ttc,
    STATE(133), 1,
      sym_preconditions,
    STATE(186), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(45), 2,
      anon_sym_let,
      sym_step_type,
    STATE(15), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(31), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [159] = 14,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(35), 1,
      anon_sym_LBRACK,
    ACTIONS(47), 1,
      anon_sym_RBRACE,
    STATE(13), 1,
      sym_ttc,
    STATE(120), 1,
      sym_preconditions,
    STATE(219), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(49), 2,
      anon_sym_let,
      sym_step_type,
    STATE(16), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(39), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [206] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(51), 1,
      anon_sym_RBRACE,
    STATE(97), 1,
      sym_preconditions,
    STATE(264), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(53), 2,
      anon_sym_let,
      sym_step_type,
    STATE(30), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(48), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [247] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(55), 1,
      anon_sym_RBRACE,
    STATE(96), 1,
      sym_preconditions,
    STATE(244), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(57), 2,
      anon_sym_let,
      sym_step_type,
    STATE(8), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(27), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [288] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(59), 1,
      anon_sym_RBRACE,
    STATE(103), 1,
      sym_preconditions,
    STATE(170), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(61), 2,
      anon_sym_let,
      sym_step_type,
    STATE(33), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(48), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [329] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(63), 1,
      anon_sym_RBRACE,
    STATE(106), 1,
      sym_preconditions,
    STATE(176), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(65), 2,
      anon_sym_let,
      sym_step_type,
    STATE(11), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(36), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [370] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(67), 1,
      anon_sym_RBRACE,
    STATE(107), 1,
      sym_preconditions,
    STATE(178), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(69), 2,
      anon_sym_let,
      sym_step_type,
    STATE(26), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(48), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [411] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(71), 1,
      anon_sym_RBRACE,
    STATE(114), 1,
      sym_preconditions,
    STATE(202), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(73), 2,
      anon_sym_let,
      sym_step_type,
    STATE(32), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(48), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [452] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(75), 1,
      anon_sym_RBRACE,
    STATE(94), 1,
      sym_preconditions,
    STATE(249), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(77), 2,
      anon_sym_let,
      sym_step_type,
    STATE(43), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(48), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [493] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(79), 1,
      anon_sym_RBRACE,
    STATE(125), 1,
      sym_preconditions,
    STATE(235), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(81), 2,
      anon_sym_let,
      sym_step_type,
    STATE(12), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(42), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [534] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(83), 1,
      anon_sym_RBRACE,
    STATE(117), 1,
      sym_preconditions,
    STATE(209), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(85), 2,
      anon_sym_let,
      sym_step_type,
    STATE(17), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    STATE(34), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
  [575] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(87), 1,
      anon_sym_RBRACE,
    STATE(118), 1,
      sym_preconditions,
    STATE(265), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(89), 2,
      anon_sym_let,
      sym_step_type,
    STATE(35), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(48), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [616] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(91), 1,
      anon_sym_RBRACE,
    STATE(127), 1,
      sym_preconditions,
    STATE(238), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(93), 2,
      anon_sym_let,
      sym_step_type,
    STATE(37), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(48), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [657] = 12,
    ACTIONS(15), 1,
      sym_identifier,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    ACTIONS(95), 1,
      anon_sym_RBRACE,
    STATE(122), 1,
      sym_preconditions,
    STATE(226), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(97), 2,
      anon_sym_let,
      sym_step_type,
    STATE(40), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    STATE(48), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [698] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(101), 1,
      anon_sym_LPAREN,
    ACTIONS(103), 1,
      anon_sym_DASH,
    ACTIONS(99), 12,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [722] = 5,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(109), 1,
      anon_sym_AT,
    STATE(19), 1,
      aux_sym_attack_step_repeat1,
    ACTIONS(105), 4,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
      sym_identifier,
    ACTIONS(107), 7,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
  [747] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(114), 1,
      anon_sym_DASH,
    ACTIONS(112), 12,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [768] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(118), 1,
      anon_sym_DOT,
    ACTIONS(120), 1,
      anon_sym_LBRACK,
    ACTIONS(122), 1,
      anon_sym_DASH,
    ACTIONS(124), 1,
      anon_sym_STAR,
    ACTIONS(116), 9,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_RPAREN,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [795] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(120), 1,
      anon_sym_LBRACK,
    ACTIONS(122), 1,
      anon_sym_DASH,
    ACTIONS(124), 1,
      anon_sym_STAR,
    ACTIONS(116), 10,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [820] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(128), 1,
      anon_sym_DASH,
    ACTIONS(126), 12,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [841] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(132), 1,
      anon_sym_DASH,
    ACTIONS(130), 12,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [862] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(136), 1,
      anon_sym_DASH,
    ACTIONS(134), 12,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [883] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(116), 1,
      sym_preconditions,
    STATE(206), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(138), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [915] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(104), 1,
      sym_preconditions,
    STATE(171), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(140), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [947] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(109), 1,
      sym_preconditions,
    STATE(179), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(142), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [979] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(99), 1,
      sym_preconditions,
    STATE(191), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(144), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1011] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(105), 1,
      sym_preconditions,
    STATE(173), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(146), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1043] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(119), 1,
      sym_preconditions,
    STATE(213), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(148), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1075] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(121), 1,
      sym_preconditions,
    STATE(222), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(150), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1107] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(113), 1,
      sym_preconditions,
    STATE(198), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(152), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1139] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(123), 1,
      sym_preconditions,
    STATE(228), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(154), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1171] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(124), 1,
      sym_preconditions,
    STATE(231), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(156), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1203] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(115), 1,
      sym_preconditions,
    STATE(204), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(158), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1235] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(131), 1,
      sym_preconditions,
    STATE(252), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(160), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1267] = 7,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(118), 1,
      anon_sym_DOT,
    ACTIONS(120), 1,
      anon_sym_LBRACK,
    ACTIONS(124), 1,
      anon_sym_STAR,
    ACTIONS(164), 1,
      anon_sym_DASH,
    ACTIONS(166), 2,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
    ACTIONS(162), 6,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [1295] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(128), 1,
      sym_preconditions,
    STATE(241), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(168), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1327] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(129), 1,
      sym_preconditions,
    STATE(245), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(170), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1359] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(105), 4,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
      sym_identifier,
    ACTIONS(107), 8,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      anon_sym_AT,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
  [1379] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(130), 1,
      sym_preconditions,
    STATE(250), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(172), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1411] = 9,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(27), 1,
      anon_sym_BANG,
    ACTIONS(29), 1,
      anon_sym_SLASH_SLASH_BANG,
    ACTIONS(31), 1,
      anon_sym_LT_DASH,
    STATE(110), 1,
      sym_preconditions,
    STATE(257), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(174), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [1443] = 6,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(176), 1,
      sym_identifier,
    ACTIONS(182), 1,
      anon_sym_LBRACK,
    STATE(67), 1,
      sym_ttc,
    ACTIONS(180), 3,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
    ACTIONS(178), 5,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [1468] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(184), 1,
      ts_builtin_sym_end,
    ACTIONS(186), 1,
      anon_sym_include,
    ACTIONS(189), 1,
      anon_sym_category,
    ACTIONS(192), 1,
      anon_sym_POUND,
    ACTIONS(195), 1,
      anon_sym_associations,
    STATE(45), 2,
      sym_declaration,
      aux_sym_source_file_repeat1,
    STATE(143), 4,
      sym_include_declaration,
      sym_category_declaration,
      sym_define_declaration,
      sym_associations_declaration,
  [1497] = 8,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(7), 1,
      anon_sym_include,
    ACTIONS(9), 1,
      anon_sym_category,
    ACTIONS(11), 1,
      anon_sym_POUND,
    ACTIONS(13), 1,
      anon_sym_associations,
    ACTIONS(198), 1,
      ts_builtin_sym_end,
    STATE(45), 2,
      sym_declaration,
      aux_sym_source_file_repeat1,
    STATE(143), 4,
      sym_include_declaration,
      sym_category_declaration,
      sym_define_declaration,
      sym_associations_declaration,
  [1526] = 6,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(182), 1,
      anon_sym_LBRACK,
    ACTIONS(200), 1,
      sym_identifier,
    STATE(70), 1,
      sym_ttc,
    ACTIONS(204), 3,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
    ACTIONS(202), 5,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [1551] = 5,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(206), 1,
      sym_identifier,
    STATE(48), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
    ACTIONS(211), 3,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
    ACTIONS(209), 5,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [1574] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(213), 4,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
      sym_identifier,
    ACTIONS(215), 6,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
  [1592] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(217), 1,
      sym_identifier,
    ACTIONS(219), 1,
      anon_sym_LPAREN,
    ACTIONS(221), 2,
      sym_integer,
      sym_float,
    STATE(102), 6,
      sym__ttc_expr,
      sym__ttc_parenthesized,
      sym__ttc_primary,
      sym_ttc_distribution,
      sym_ttc_binop,
      sym__number,
  [1614] = 5,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(182), 1,
      anon_sym_LBRACK,
    ACTIONS(225), 1,
      anon_sym_BANG,
    STATE(72), 1,
      sym_ttc,
    ACTIONS(223), 7,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [1636] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(217), 1,
      sym_identifier,
    ACTIONS(219), 1,
      anon_sym_LPAREN,
    ACTIONS(227), 2,
      sym_integer,
      sym_float,
    STATE(95), 6,
      sym__ttc_expr,
      sym__ttc_parenthesized,
      sym__ttc_primary,
      sym_ttc_distribution,
      sym_ttc_binop,
      sym__number,
  [1658] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(229), 4,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
      sym_identifier,
    ACTIONS(231), 6,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
      anon_sym_LBRACK,
  [1676] = 5,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(235), 1,
      anon_sym_BANG,
    ACTIONS(238), 1,
      anon_sym_SLASH_SLASH_BANG,
    STATE(54), 2,
      sym_detector,
      aux_sym_attack_step_repeat2,
    ACTIONS(233), 6,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [1698] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(217), 1,
      sym_identifier,
    ACTIONS(219), 1,
      anon_sym_LPAREN,
    ACTIONS(241), 2,
      sym_integer,
      sym_float,
    STATE(132), 6,
      sym__ttc_expr,
      sym__ttc_parenthesized,
      sym__ttc_primary,
      sym_ttc_distribution,
      sym_ttc_binop,
      sym__number,
  [1720] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(217), 1,
      sym_identifier,
    ACTIONS(219), 1,
      anon_sym_LPAREN,
    ACTIONS(243), 2,
      sym_integer,
      sym_float,
    STATE(87), 6,
      sym__ttc_expr,
      sym__ttc_parenthesized,
      sym__ttc_primary,
      sym_ttc_distribution,
      sym_ttc_binop,
      sym__number,
  [1742] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(217), 1,
      sym_identifier,
    ACTIONS(219), 1,
      anon_sym_LPAREN,
    ACTIONS(245), 2,
      sym_integer,
      sym_float,
    STATE(75), 6,
      sym__ttc_expr,
      sym__ttc_parenthesized,
      sym__ttc_primary,
      sym_ttc_distribution,
      sym_ttc_binop,
      sym__number,
  [1764] = 5,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(182), 1,
      anon_sym_LBRACK,
    ACTIONS(249), 1,
      anon_sym_BANG,
    STATE(68), 1,
      sym_ttc,
    ACTIONS(247), 7,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [1786] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(217), 1,
      sym_identifier,
    ACTIONS(219), 1,
      anon_sym_LPAREN,
    ACTIONS(251), 2,
      sym_integer,
      sym_float,
    STATE(85), 6,
      sym__ttc_expr,
      sym__ttc_parenthesized,
      sym__ttc_primary,
      sym_ttc_distribution,
      sym_ttc_binop,
      sym__number,
  [1808] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(253), 1,
      sym_identifier,
    ACTIONS(255), 1,
      anon_sym_LPAREN,
    STATE(240), 1,
      sym_asset_expr,
    STATE(38), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [1829] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(253), 1,
      sym_identifier,
    ACTIONS(255), 1,
      anon_sym_LPAREN,
    STATE(152), 1,
      sym_asset_expr,
    STATE(38), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [1850] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(253), 1,
      sym_identifier,
    ACTIONS(255), 1,
      anon_sym_LPAREN,
    STATE(91), 1,
      sym_asset_expr,
    STATE(38), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [1871] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(253), 1,
      sym_identifier,
    ACTIONS(255), 1,
      anon_sym_LPAREN,
    STATE(111), 1,
      sym_asset_expr,
    STATE(38), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [1892] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(257), 4,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
      sym_identifier,
    ACTIONS(259), 5,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [1909] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(261), 4,
      anon_sym_let,
      sym_step_type,
      anon_sym_BANG,
      sym_identifier,
    ACTIONS(263), 5,
      anon_sym_RBRACE,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [1926] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(265), 1,
      anon_sym_LPAREN,
    ACTIONS(269), 1,
      anon_sym_SLASH,
    ACTIONS(267), 6,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_CARET,
  [1944] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(273), 1,
      anon_sym_BANG,
    ACTIONS(271), 7,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [1960] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(277), 1,
      anon_sym_BANG,
    ACTIONS(275), 7,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [1976] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(253), 1,
      sym_identifier,
    ACTIONS(255), 1,
      anon_sym_LPAREN,
    STATE(22), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [1994] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(281), 1,
      anon_sym_BANG,
    ACTIONS(279), 7,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [2010] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(253), 1,
      sym_identifier,
    ACTIONS(255), 1,
      anon_sym_LPAREN,
    STATE(92), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [2028] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(285), 1,
      anon_sym_BANG,
    ACTIONS(283), 7,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [2044] = 3,
    ACTIONS(17), 1,
      sym_comment,
    ACTIONS(257), 1,
      anon_sym_BANG,
    ACTIONS(259), 7,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_SLASH_SLASH_BANG,
      anon_sym_LT_DASH,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [2060] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(253), 1,
      sym_identifier,
    ACTIONS(255), 1,
      anon_sym_LPAREN,
    STATE(21), 6,
      sym__inline_asset_expr,
      sym__asset_expr_primary,
      sym_asset_variable_substitution,
      sym_asset_expr_type,
      sym_asset_expr_binop,
      sym_asset_expr_unop,
  [2078] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(289), 1,
      anon_sym_SLASH,
    ACTIONS(291), 1,
      anon_sym_CARET,
    ACTIONS(287), 5,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
  [2095] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(293), 1,
      anon_sym_RBRACE,
    ACTIONS(295), 1,
      anon_sym_let,
    ACTIONS(297), 1,
      sym_step_type,
    STATE(318), 1,
      sym_asset_definition,
    STATE(108), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [2116] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(295), 1,
      anon_sym_let,
    ACTIONS(297), 1,
      sym_step_type,
    ACTIONS(299), 1,
      anon_sym_RBRACE,
    STATE(281), 1,
      sym_asset_definition,
    STATE(108), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [2137] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(295), 1,
      anon_sym_let,
    ACTIONS(297), 1,
      sym_step_type,
    ACTIONS(301), 1,
      anon_sym_RBRACE,
    STATE(306), 1,
      sym_asset_definition,
    STATE(108), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [2158] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(305), 1,
      anon_sym_SLASH,
    ACTIONS(303), 6,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_CARET,
  [2173] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(309), 1,
      anon_sym_COMMA,
    STATE(80), 1,
      aux_sym_preconditions_repeat1,
    ACTIONS(307), 5,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [2190] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(295), 1,
      anon_sym_let,
    ACTIONS(297), 1,
      sym_step_type,
    ACTIONS(312), 1,
      anon_sym_RBRACE,
    STATE(323), 1,
      sym_asset_definition,
    STATE(108), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [2211] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(316), 1,
      anon_sym_SLASH,
    ACTIONS(314), 6,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_CARET,
  [2226] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(320), 1,
      anon_sym_SLASH,
    ACTIONS(318), 6,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_CARET,
  [2241] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(324), 1,
      anon_sym_SLASH,
    ACTIONS(322), 6,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
      anon_sym_CARET,
  [2256] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(291), 1,
      anon_sym_CARET,
    ACTIONS(326), 1,
      anon_sym_STAR,
    ACTIONS(328), 1,
      anon_sym_SLASH,
    ACTIONS(287), 4,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
  [2275] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(332), 1,
      anon_sym_COMMA,
    STATE(80), 1,
      aux_sym_preconditions_repeat1,
    ACTIONS(330), 5,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [2292] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(289), 1,
      anon_sym_SLASH,
    ACTIONS(291), 1,
      anon_sym_CARET,
    ACTIONS(287), 5,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_PLUS,
      anon_sym_DASH,
      anon_sym_STAR,
  [2309] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(295), 1,
      anon_sym_let,
    ACTIONS(297), 1,
      sym_step_type,
    ACTIONS(334), 1,
      anon_sym_RBRACE,
    STATE(321), 1,
      sym_asset_definition,
    STATE(108), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [2330] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(295), 1,
      anon_sym_let,
    ACTIONS(297), 1,
      sym_step_type,
    ACTIONS(336), 1,
      anon_sym_RBRACE,
    STATE(278), 1,
      sym_asset_definition,
    STATE(108), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [2351] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(295), 1,
      anon_sym_let,
    ACTIONS(297), 1,
      sym_step_type,
    ACTIONS(338), 1,
      anon_sym_RBRACE,
    STATE(313), 1,
      sym_asset_definition,
    STATE(108), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [2372] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(332), 1,
      anon_sym_COMMA,
    STATE(86), 1,
      aux_sym_preconditions_repeat1,
    ACTIONS(340), 5,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [2389] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(118), 1,
      anon_sym_DOT,
    ACTIONS(120), 1,
      anon_sym_LBRACK,
    ACTIONS(124), 1,
      anon_sym_STAR,
    ACTIONS(342), 1,
      anon_sym_RPAREN,
    ACTIONS(166), 3,
      anon_sym_DASH,
      anon_sym_BSLASH_SLASH,
      anon_sym_SLASH_BSLASH,
  [2410] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(295), 1,
      anon_sym_let,
    ACTIONS(297), 1,
      sym_step_type,
    ACTIONS(344), 1,
      anon_sym_RBRACE,
    STATE(283), 1,
      sym_asset_definition,
    STATE(108), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [2431] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(255), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(346), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2447] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(291), 1,
      anon_sym_CARET,
    ACTIONS(326), 1,
      anon_sym_STAR,
    ACTIONS(328), 1,
      anon_sym_SLASH,
    ACTIONS(348), 1,
      anon_sym_RBRACK,
    ACTIONS(350), 2,
      anon_sym_PLUS,
      anon_sym_DASH,
  [2467] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(262), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(352), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2483] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(172), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(354), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2499] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(174), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(356), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2515] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(180), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(358), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2531] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(360), 1,
      anon_sym_STAR,
    ACTIONS(362), 1,
      sym_integer,
    STATE(269), 1,
      sym_multiplicity_range,
    STATE(290), 1,
      sym_multiplicity,
    STATE(187), 2,
      sym__multiplicity_atom,
      sym_star,
  [2551] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(360), 1,
      anon_sym_STAR,
    ACTIONS(362), 1,
      sym_integer,
    STATE(269), 1,
      sym_multiplicity_range,
    STATE(316), 1,
      sym_multiplicity,
    STATE(187), 2,
      sym__multiplicity_atom,
      sym_star,
  [2571] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(291), 1,
      anon_sym_CARET,
    ACTIONS(326), 1,
      anon_sym_STAR,
    ACTIONS(328), 1,
      anon_sym_SLASH,
    ACTIONS(364), 1,
      anon_sym_RPAREN,
    ACTIONS(350), 2,
      anon_sym_PLUS,
      anon_sym_DASH,
  [2591] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(197), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(366), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2607] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(199), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(368), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2623] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(200), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(370), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2639] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(169), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(372), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2655] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(205), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(374), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2671] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(295), 1,
      anon_sym_let,
    ACTIONS(297), 1,
      sym_step_type,
    ACTIONS(376), 1,
      anon_sym_RBRACE,
    STATE(112), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [2689] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(207), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(378), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2705] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(261), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(380), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2721] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(307), 6,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
      anon_sym_COMMA,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
  [2733] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(382), 1,
      anon_sym_RBRACE,
    ACTIONS(384), 1,
      anon_sym_let,
    ACTIONS(387), 1,
      sym_step_type,
    STATE(112), 3,
      sym_asset_variable,
      sym_attack_step,
      aux_sym_asset_definition_repeat1,
  [2751] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(218), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(390), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2767] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(221), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(392), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2783] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(223), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(394), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2799] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(224), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(396), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2815] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(225), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(398), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2831] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(229), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(400), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2847] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(232), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(402), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2863] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(234), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(404), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2879] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(242), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(406), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2895] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(243), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(408), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2911] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(246), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(410), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2927] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(247), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(412), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2943] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(248), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(414), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2959] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(237), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(416), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2975] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(251), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(418), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [2991] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(253), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(420), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3007] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(254), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(422), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3023] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(258), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(424), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3039] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(259), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(426), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3055] = 6,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(291), 1,
      anon_sym_CARET,
    ACTIONS(326), 1,
      anon_sym_STAR,
    ACTIONS(328), 1,
      anon_sym_SLASH,
    ACTIONS(428), 1,
      anon_sym_RBRACK,
    ACTIONS(350), 2,
      anon_sym_PLUS,
      anon_sym_DASH,
  [3075] = 4,
    ACTIONS(3), 1,
      sym_comment,
    STATE(208), 1,
      sym_reaching,
    ACTIONS(33), 2,
      anon_sym_PLUS_GT,
      anon_sym_DASH_GT,
    ACTIONS(430), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3091] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(432), 1,
      anon_sym_RBRACE,
    ACTIONS(434), 1,
      anon_sym_abstract,
    ACTIONS(436), 1,
      anon_sym_asset,
    STATE(141), 2,
      sym_asset_declaration,
      aux_sym_category_declaration_repeat2,
  [3108] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(438), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [3119] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(440), 1,
      sym_identifier,
    ACTIONS(209), 2,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
    STATE(136), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [3134] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(443), 1,
      sym_identifier,
    ACTIONS(445), 1,
      anon_sym_LBRACE,
    ACTIONS(447), 1,
      anon_sym_extends,
    STATE(168), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [3151] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(449), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [3162] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(451), 1,
      anon_sym_RBRACE,
    ACTIONS(453), 1,
      anon_sym_abstract,
    ACTIONS(456), 1,
      anon_sym_asset,
    STATE(139), 2,
      sym_asset_declaration,
      aux_sym_category_declaration_repeat2,
  [3179] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(459), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [3190] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(434), 1,
      anon_sym_abstract,
    ACTIONS(436), 1,
      anon_sym_asset,
    ACTIONS(461), 1,
      anon_sym_RBRACE,
    STATE(139), 2,
      sym_asset_declaration,
      aux_sym_category_declaration_repeat2,
  [3207] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(463), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [3218] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(465), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [3229] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(467), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [3240] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(434), 1,
      anon_sym_abstract,
    ACTIONS(436), 1,
      anon_sym_asset,
    ACTIONS(469), 1,
      anon_sym_RBRACE,
    STATE(139), 2,
      sym_asset_declaration,
      aux_sym_category_declaration_repeat2,
  [3257] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(443), 1,
      sym_identifier,
    ACTIONS(471), 1,
      anon_sym_LBRACE,
    ACTIONS(473), 1,
      anon_sym_extends,
    STATE(161), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [3274] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(475), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [3285] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(477), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [3296] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(434), 1,
      anon_sym_abstract,
    ACTIONS(436), 1,
      anon_sym_asset,
    ACTIONS(479), 1,
      anon_sym_RBRACE,
    STATE(145), 2,
      sym_asset_declaration,
      aux_sym_category_declaration_repeat2,
  [3313] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(332), 1,
      anon_sym_COMMA,
    STATE(80), 1,
      aux_sym_preconditions_repeat1,
    ACTIONS(481), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3328] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(483), 5,
      ts_builtin_sym_end,
      anon_sym_include,
      anon_sym_category,
      anon_sym_POUND,
      anon_sym_associations,
  [3339] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(332), 1,
      anon_sym_COMMA,
    STATE(150), 1,
      aux_sym_preconditions_repeat1,
    ACTIONS(485), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3354] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(487), 1,
      sym_identifier,
    ACTIONS(490), 1,
      anon_sym_RBRACE,
    STATE(167), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [3368] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(492), 1,
      sym_identifier,
    ACTIONS(494), 1,
      anon_sym_RBRACE,
    STATE(165), 2,
      sym_association,
      aux_sym_associations_declaration_repeat1,
  [3382] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(360), 1,
      anon_sym_STAR,
    ACTIONS(496), 1,
      sym_integer,
    STATE(274), 2,
      sym__multiplicity_atom,
      sym_star,
  [3396] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(498), 1,
      anon_sym_RPAREN,
    STATE(194), 1,
      sym__number,
    ACTIONS(500), 2,
      sym_integer,
      sym_float,
  [3410] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(502), 1,
      sym_identifier,
    ACTIONS(504), 1,
      anon_sym_LBRACE,
    STATE(162), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [3424] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(502), 1,
      sym_identifier,
    ACTIONS(506), 1,
      anon_sym_LBRACE,
    STATE(160), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [3438] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(502), 1,
      sym_identifier,
    ACTIONS(508), 1,
      anon_sym_LBRACE,
    STATE(136), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [3452] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(502), 1,
      sym_identifier,
    ACTIONS(510), 1,
      anon_sym_LBRACE,
    STATE(136), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [3466] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(502), 1,
      sym_identifier,
    ACTIONS(512), 1,
      anon_sym_LBRACE,
    STATE(136), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [3480] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(502), 1,
      sym_identifier,
    ACTIONS(514), 1,
      anon_sym_LBRACE,
    STATE(136), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [3494] = 5,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(516), 1,
      sym_identifier,
    ACTIONS(518), 1,
      anon_sym_LPAREN,
    STATE(47), 1,
      sym_detector_context,
    STATE(266), 1,
      sym_detector_name,
  [3510] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(502), 1,
      sym_identifier,
    ACTIONS(520), 1,
      anon_sym_LBRACE,
    STATE(159), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [3524] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(522), 1,
      sym_identifier,
    ACTIONS(525), 1,
      anon_sym_RBRACE,
    STATE(165), 2,
      sym_association,
      aux_sym_associations_declaration_repeat1,
  [3538] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(492), 1,
      sym_identifier,
    ACTIONS(527), 1,
      anon_sym_RBRACE,
    STATE(154), 2,
      sym_association,
      aux_sym_associations_declaration_repeat1,
  [3552] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(529), 1,
      sym_identifier,
    ACTIONS(532), 1,
      anon_sym_RBRACE,
    STATE(136), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [3566] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(502), 1,
      sym_identifier,
    ACTIONS(534), 1,
      anon_sym_LBRACE,
    STATE(136), 2,
      sym_meta,
      aux_sym_category_declaration_repeat1,
  [3580] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(536), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3589] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(538), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3598] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(540), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3607] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(542), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3616] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(544), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3625] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(546), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3634] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(548), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [3643] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(550), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3652] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(552), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3661] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(554), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3670] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(556), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3679] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(558), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3688] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(560), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [3697] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(562), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [3706] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(564), 1,
      anon_sym_DOT,
    ACTIONS(566), 1,
      anon_sym_LPAREN,
    STATE(230), 1,
      aux_sym_detector_name_repeat1,
  [3719] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(568), 3,
      anon_sym_LBRACK,
      anon_sym_LT_DASH_DASH,
      anon_sym_DOT_DOT,
  [3728] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(570), 1,
      anon_sym_RBRACE,
    ACTIONS(572), 1,
      anon_sym_COMMA,
    STATE(185), 1,
      aux_sym_cias_repeat1,
  [3741] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(575), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3750] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(579), 1,
      anon_sym_DOT_DOT,
    ACTIONS(577), 2,
      anon_sym_LBRACK,
      anon_sym_LT_DASH_DASH,
  [3761] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(581), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [3770] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(583), 1,
      anon_sym_COMMA,
    ACTIONS(585), 1,
      anon_sym_RPAREN,
    STATE(215), 1,
      aux_sym_detector_context_repeat1,
  [3783] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(587), 1,
      anon_sym_DOT,
    ACTIONS(590), 1,
      anon_sym_LPAREN,
    STATE(190), 1,
      aux_sym_detector_name_repeat1,
  [3796] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(592), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3805] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(594), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [3814] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(596), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [3823] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(598), 1,
      anon_sym_COMMA,
    ACTIONS(600), 1,
      anon_sym_RPAREN,
    STATE(217), 1,
      aux_sym_ttc_distribution_repeat1,
  [3836] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(602), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [3845] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(604), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [3854] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(606), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3863] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(608), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3872] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(610), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3881] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(612), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3890] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(614), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [3899] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(616), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3908] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(618), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [3917] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(620), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3926] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(622), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3935] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(624), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3944] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(626), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3953] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(628), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3962] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(630), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [3971] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(632), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [3980] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(634), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [3989] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(636), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [3998] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(638), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4007] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(640), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [4016] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(642), 1,
      anon_sym_COMMA,
    ACTIONS(645), 1,
      anon_sym_RPAREN,
    STATE(215), 1,
      aux_sym_detector_context_repeat1,
  [4029] = 3,
    ACTIONS(3), 1,
      sym_comment,
    STATE(271), 1,
      sym__number,
    ACTIONS(647), 2,
      sym_integer,
      sym_float,
  [4040] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(598), 1,
      anon_sym_COMMA,
    ACTIONS(649), 1,
      anon_sym_RPAREN,
    STATE(233), 1,
      aux_sym_ttc_distribution_repeat1,
  [4053] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(651), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4062] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(653), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4071] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(655), 1,
      anon_sym_RBRACE,
    ACTIONS(657), 1,
      anon_sym_COMMA,
    STATE(185), 1,
      aux_sym_cias_repeat1,
  [4084] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(659), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4093] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(661), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4102] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(663), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4111] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(665), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4120] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(667), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4129] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(669), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4138] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(583), 1,
      anon_sym_COMMA,
    ACTIONS(671), 1,
      anon_sym_RPAREN,
    STATE(189), 1,
      aux_sym_detector_context_repeat1,
  [4151] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(673), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4160] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(675), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4169] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(564), 1,
      anon_sym_DOT,
    ACTIONS(677), 1,
      anon_sym_LPAREN,
    STATE(190), 1,
      aux_sym_detector_name_repeat1,
  [4182] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(679), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4191] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(681), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4200] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(683), 1,
      anon_sym_COMMA,
    ACTIONS(686), 1,
      anon_sym_RPAREN,
    STATE(233), 1,
      aux_sym_ttc_distribution_repeat1,
  [4213] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(688), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4222] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(690), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4231] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(263), 3,
      anon_sym_LBRACE,
      anon_sym_RBRACE,
      sym_identifier,
  [4240] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(692), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4249] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(694), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4258] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(696), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4267] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(698), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4276] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(700), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4285] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(702), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4294] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(704), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4303] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(706), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4312] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(708), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4321] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(710), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4330] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(712), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4339] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(714), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4348] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(716), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4357] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(718), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4366] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(720), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4375] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(722), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4384] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(724), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4393] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(726), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4402] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(728), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4411] = 4,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(657), 1,
      anon_sym_COMMA,
    ACTIONS(730), 1,
      anon_sym_RBRACE,
    STATE(220), 1,
      aux_sym_cias_repeat1,
  [4424] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(732), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4433] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(734), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4442] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(736), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4451] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(738), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [4460] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(740), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4469] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(742), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4478] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(744), 3,
      anon_sym_RBRACE,
      anon_sym_abstract,
      anon_sym_asset,
  [4487] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(746), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4496] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(748), 3,
      anon_sym_RBRACE,
      anon_sym_let,
      sym_step_type,
  [4505] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(518), 1,
      anon_sym_LPAREN,
    STATE(44), 1,
      sym_detector_context,
  [4515] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(750), 1,
      sym_identifier,
    STATE(227), 1,
      sym_detector_context_asset,
  [4525] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(752), 1,
      sym_cia,
    STATE(304), 1,
      sym_cias,
  [4535] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(577), 2,
      anon_sym_LBRACK,
      anon_sym_LT_DASH_DASH,
  [4543] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(754), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [4551] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(686), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [4559] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(750), 1,
      sym_identifier,
    STATE(275), 1,
      sym_detector_context_asset,
  [4569] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(590), 2,
      anon_sym_DOT,
      anon_sym_LPAREN,
  [4577] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(756), 2,
      anon_sym_LBRACK,
      anon_sym_LT_DASH_DASH,
  [4585] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(645), 2,
      anon_sym_COMMA,
      anon_sym_RPAREN,
  [4593] = 3,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(752), 1,
      sym_cia,
    STATE(310), 1,
      sym_cias,
  [4603] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(570), 2,
      anon_sym_RBRACE,
      anon_sym_COMMA,
  [4611] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(758), 1,
      anon_sym_RBRACE,
  [4618] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(760), 1,
      sym_identifier,
  [4625] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(762), 1,
      sym_identifier,
  [4632] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(764), 1,
      anon_sym_RBRACE,
  [4639] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(766), 1,
      sym_identifier,
  [4646] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(768), 1,
      anon_sym_RBRACE,
  [4653] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(770), 1,
      anon_sym_asset,
  [4660] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(772), 1,
      sym_identifier,
  [4667] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(774), 1,
      sym_identifier,
  [4674] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(776), 1,
      anon_sym_DASH_DASH_GT,
  [4681] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(778), 1,
      anon_sym_RBRACK,
  [4688] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(780), 1,
      anon_sym_RPAREN,
  [4695] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(782), 1,
      anon_sym_LBRACK,
  [4702] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(784), 1,
      anon_sym_COLON,
  [4709] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(786), 1,
      sym_identifier,
  [4716] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(788), 1,
      sym_identifier,
  [4723] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(790), 1,
      sym_identifier,
  [4730] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(792), 1,
      anon_sym_EQ,
  [4737] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(794), 1,
      anon_sym_RBRACK,
  [4744] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(796), 1,
      sym_identifier,
  [4751] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(798), 1,
      anon_sym_LBRACK,
  [4758] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(800), 1,
      anon_sym_info,
  [4765] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(802), 1,
      sym_identifier,
  [4772] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(804), 1,
      sym_identifier,
  [4779] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(806), 1,
      sym_identifier,
  [4786] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(808), 1,
      sym_string,
  [4793] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(810), 1,
      anon_sym_RBRACE,
  [4800] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(812), 1,
      anon_sym_LBRACE,
  [4807] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(814), 1,
      anon_sym_RBRACE,
  [4814] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(816), 1,
      ts_builtin_sym_end,
  [4821] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(818), 1,
      sym_identifier,
  [4828] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(820), 1,
      anon_sym_COLON,
  [4835] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(822), 1,
      anon_sym_RBRACE,
  [4842] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(824), 1,
      anon_sym_RBRACK,
  [4849] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(826), 1,
      sym_cia,
  [4856] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(828), 1,
      anon_sym_RBRACE,
  [4863] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(830), 1,
      sym_identifier,
  [4870] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(832), 1,
      sym_identifier,
  [4877] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(834), 1,
      anon_sym_LT_DASH_DASH,
  [4884] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(836), 1,
      sym_string,
  [4891] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(838), 1,
      anon_sym_RBRACE,
  [4898] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(840), 1,
      sym_identifier,
  [4905] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(842), 1,
      sym_string,
  [4912] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(844), 1,
      anon_sym_RBRACE,
  [4919] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(846), 1,
      anon_sym_COLON,
  [4926] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(848), 1,
      anon_sym_RBRACE,
  [4933] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(850), 1,
      anon_sym_info,
  [4940] = 2,
    ACTIONS(3), 1,
      sym_comment,
    ACTIONS(852), 1,
      sym_string,
};

static const uint32_t ts_small_parse_table_map[] = {
  [SMALL_STATE(2)] = 0,
  [SMALL_STATE(3)] = 56,
  [SMALL_STATE(4)] = 112,
  [SMALL_STATE(5)] = 159,
  [SMALL_STATE(6)] = 206,
  [SMALL_STATE(7)] = 247,
  [SMALL_STATE(8)] = 288,
  [SMALL_STATE(9)] = 329,
  [SMALL_STATE(10)] = 370,
  [SMALL_STATE(11)] = 411,
  [SMALL_STATE(12)] = 452,
  [SMALL_STATE(13)] = 493,
  [SMALL_STATE(14)] = 534,
  [SMALL_STATE(15)] = 575,
  [SMALL_STATE(16)] = 616,
  [SMALL_STATE(17)] = 657,
  [SMALL_STATE(18)] = 698,
  [SMALL_STATE(19)] = 722,
  [SMALL_STATE(20)] = 747,
  [SMALL_STATE(21)] = 768,
  [SMALL_STATE(22)] = 795,
  [SMALL_STATE(23)] = 820,
  [SMALL_STATE(24)] = 841,
  [SMALL_STATE(25)] = 862,
  [SMALL_STATE(26)] = 883,
  [SMALL_STATE(27)] = 915,
  [SMALL_STATE(28)] = 947,
  [SMALL_STATE(29)] = 979,
  [SMALL_STATE(30)] = 1011,
  [SMALL_STATE(31)] = 1043,
  [SMALL_STATE(32)] = 1075,
  [SMALL_STATE(33)] = 1107,
  [SMALL_STATE(34)] = 1139,
  [SMALL_STATE(35)] = 1171,
  [SMALL_STATE(36)] = 1203,
  [SMALL_STATE(37)] = 1235,
  [SMALL_STATE(38)] = 1267,
  [SMALL_STATE(39)] = 1295,
  [SMALL_STATE(40)] = 1327,
  [SMALL_STATE(41)] = 1359,
  [SMALL_STATE(42)] = 1379,
  [SMALL_STATE(43)] = 1411,
  [SMALL_STATE(44)] = 1443,
  [SMALL_STATE(45)] = 1468,
  [SMALL_STATE(46)] = 1497,
  [SMALL_STATE(47)] = 1526,
  [SMALL_STATE(48)] = 1551,
  [SMALL_STATE(49)] = 1574,
  [SMALL_STATE(50)] = 1592,
  [SMALL_STATE(51)] = 1614,
  [SMALL_STATE(52)] = 1636,
  [SMALL_STATE(53)] = 1658,
  [SMALL_STATE(54)] = 1676,
  [SMALL_STATE(55)] = 1698,
  [SMALL_STATE(56)] = 1720,
  [SMALL_STATE(57)] = 1742,
  [SMALL_STATE(58)] = 1764,
  [SMALL_STATE(59)] = 1786,
  [SMALL_STATE(60)] = 1808,
  [SMALL_STATE(61)] = 1829,
  [SMALL_STATE(62)] = 1850,
  [SMALL_STATE(63)] = 1871,
  [SMALL_STATE(64)] = 1892,
  [SMALL_STATE(65)] = 1909,
  [SMALL_STATE(66)] = 1926,
  [SMALL_STATE(67)] = 1944,
  [SMALL_STATE(68)] = 1960,
  [SMALL_STATE(69)] = 1976,
  [SMALL_STATE(70)] = 1994,
  [SMALL_STATE(71)] = 2010,
  [SMALL_STATE(72)] = 2028,
  [SMALL_STATE(73)] = 2044,
  [SMALL_STATE(74)] = 2060,
  [SMALL_STATE(75)] = 2078,
  [SMALL_STATE(76)] = 2095,
  [SMALL_STATE(77)] = 2116,
  [SMALL_STATE(78)] = 2137,
  [SMALL_STATE(79)] = 2158,
  [SMALL_STATE(80)] = 2173,
  [SMALL_STATE(81)] = 2190,
  [SMALL_STATE(82)] = 2211,
  [SMALL_STATE(83)] = 2226,
  [SMALL_STATE(84)] = 2241,
  [SMALL_STATE(85)] = 2256,
  [SMALL_STATE(86)] = 2275,
  [SMALL_STATE(87)] = 2292,
  [SMALL_STATE(88)] = 2309,
  [SMALL_STATE(89)] = 2330,
  [SMALL_STATE(90)] = 2351,
  [SMALL_STATE(91)] = 2372,
  [SMALL_STATE(92)] = 2389,
  [SMALL_STATE(93)] = 2410,
  [SMALL_STATE(94)] = 2431,
  [SMALL_STATE(95)] = 2447,
  [SMALL_STATE(96)] = 2467,
  [SMALL_STATE(97)] = 2483,
  [SMALL_STATE(98)] = 2499,
  [SMALL_STATE(99)] = 2515,
  [SMALL_STATE(100)] = 2531,
  [SMALL_STATE(101)] = 2551,
  [SMALL_STATE(102)] = 2571,
  [SMALL_STATE(103)] = 2591,
  [SMALL_STATE(104)] = 2607,
  [SMALL_STATE(105)] = 2623,
  [SMALL_STATE(106)] = 2639,
  [SMALL_STATE(107)] = 2655,
  [SMALL_STATE(108)] = 2671,
  [SMALL_STATE(109)] = 2689,
  [SMALL_STATE(110)] = 2705,
  [SMALL_STATE(111)] = 2721,
  [SMALL_STATE(112)] = 2733,
  [SMALL_STATE(113)] = 2751,
  [SMALL_STATE(114)] = 2767,
  [SMALL_STATE(115)] = 2783,
  [SMALL_STATE(116)] = 2799,
  [SMALL_STATE(117)] = 2815,
  [SMALL_STATE(118)] = 2831,
  [SMALL_STATE(119)] = 2847,
  [SMALL_STATE(120)] = 2863,
  [SMALL_STATE(121)] = 2879,
  [SMALL_STATE(122)] = 2895,
  [SMALL_STATE(123)] = 2911,
  [SMALL_STATE(124)] = 2927,
  [SMALL_STATE(125)] = 2943,
  [SMALL_STATE(126)] = 2959,
  [SMALL_STATE(127)] = 2975,
  [SMALL_STATE(128)] = 2991,
  [SMALL_STATE(129)] = 3007,
  [SMALL_STATE(130)] = 3023,
  [SMALL_STATE(131)] = 3039,
  [SMALL_STATE(132)] = 3055,
  [SMALL_STATE(133)] = 3075,
  [SMALL_STATE(134)] = 3091,
  [SMALL_STATE(135)] = 3108,
  [SMALL_STATE(136)] = 3119,
  [SMALL_STATE(137)] = 3134,
  [SMALL_STATE(138)] = 3151,
  [SMALL_STATE(139)] = 3162,
  [SMALL_STATE(140)] = 3179,
  [SMALL_STATE(141)] = 3190,
  [SMALL_STATE(142)] = 3207,
  [SMALL_STATE(143)] = 3218,
  [SMALL_STATE(144)] = 3229,
  [SMALL_STATE(145)] = 3240,
  [SMALL_STATE(146)] = 3257,
  [SMALL_STATE(147)] = 3274,
  [SMALL_STATE(148)] = 3285,
  [SMALL_STATE(149)] = 3296,
  [SMALL_STATE(150)] = 3313,
  [SMALL_STATE(151)] = 3328,
  [SMALL_STATE(152)] = 3339,
  [SMALL_STATE(153)] = 3354,
  [SMALL_STATE(154)] = 3368,
  [SMALL_STATE(155)] = 3382,
  [SMALL_STATE(156)] = 3396,
  [SMALL_STATE(157)] = 3410,
  [SMALL_STATE(158)] = 3424,
  [SMALL_STATE(159)] = 3438,
  [SMALL_STATE(160)] = 3452,
  [SMALL_STATE(161)] = 3466,
  [SMALL_STATE(162)] = 3480,
  [SMALL_STATE(163)] = 3494,
  [SMALL_STATE(164)] = 3510,
  [SMALL_STATE(165)] = 3524,
  [SMALL_STATE(166)] = 3538,
  [SMALL_STATE(167)] = 3552,
  [SMALL_STATE(168)] = 3566,
  [SMALL_STATE(169)] = 3580,
  [SMALL_STATE(170)] = 3589,
  [SMALL_STATE(171)] = 3598,
  [SMALL_STATE(172)] = 3607,
  [SMALL_STATE(173)] = 3616,
  [SMALL_STATE(174)] = 3625,
  [SMALL_STATE(175)] = 3634,
  [SMALL_STATE(176)] = 3643,
  [SMALL_STATE(177)] = 3652,
  [SMALL_STATE(178)] = 3661,
  [SMALL_STATE(179)] = 3670,
  [SMALL_STATE(180)] = 3679,
  [SMALL_STATE(181)] = 3688,
  [SMALL_STATE(182)] = 3697,
  [SMALL_STATE(183)] = 3706,
  [SMALL_STATE(184)] = 3719,
  [SMALL_STATE(185)] = 3728,
  [SMALL_STATE(186)] = 3741,
  [SMALL_STATE(187)] = 3750,
  [SMALL_STATE(188)] = 3761,
  [SMALL_STATE(189)] = 3770,
  [SMALL_STATE(190)] = 3783,
  [SMALL_STATE(191)] = 3796,
  [SMALL_STATE(192)] = 3805,
  [SMALL_STATE(193)] = 3814,
  [SMALL_STATE(194)] = 3823,
  [SMALL_STATE(195)] = 3836,
  [SMALL_STATE(196)] = 3845,
  [SMALL_STATE(197)] = 3854,
  [SMALL_STATE(198)] = 3863,
  [SMALL_STATE(199)] = 3872,
  [SMALL_STATE(200)] = 3881,
  [SMALL_STATE(201)] = 3890,
  [SMALL_STATE(202)] = 3899,
  [SMALL_STATE(203)] = 3908,
  [SMALL_STATE(204)] = 3917,
  [SMALL_STATE(205)] = 3926,
  [SMALL_STATE(206)] = 3935,
  [SMALL_STATE(207)] = 3944,
  [SMALL_STATE(208)] = 3953,
  [SMALL_STATE(209)] = 3962,
  [SMALL_STATE(210)] = 3971,
  [SMALL_STATE(211)] = 3980,
  [SMALL_STATE(212)] = 3989,
  [SMALL_STATE(213)] = 3998,
  [SMALL_STATE(214)] = 4007,
  [SMALL_STATE(215)] = 4016,
  [SMALL_STATE(216)] = 4029,
  [SMALL_STATE(217)] = 4040,
  [SMALL_STATE(218)] = 4053,
  [SMALL_STATE(219)] = 4062,
  [SMALL_STATE(220)] = 4071,
  [SMALL_STATE(221)] = 4084,
  [SMALL_STATE(222)] = 4093,
  [SMALL_STATE(223)] = 4102,
  [SMALL_STATE(224)] = 4111,
  [SMALL_STATE(225)] = 4120,
  [SMALL_STATE(226)] = 4129,
  [SMALL_STATE(227)] = 4138,
  [SMALL_STATE(228)] = 4151,
  [SMALL_STATE(229)] = 4160,
  [SMALL_STATE(230)] = 4169,
  [SMALL_STATE(231)] = 4182,
  [SMALL_STATE(232)] = 4191,
  [SMALL_STATE(233)] = 4200,
  [SMALL_STATE(234)] = 4213,
  [SMALL_STATE(235)] = 4222,
  [SMALL_STATE(236)] = 4231,
  [SMALL_STATE(237)] = 4240,
  [SMALL_STATE(238)] = 4249,
  [SMALL_STATE(239)] = 4258,
  [SMALL_STATE(240)] = 4267,
  [SMALL_STATE(241)] = 4276,
  [SMALL_STATE(242)] = 4285,
  [SMALL_STATE(243)] = 4294,
  [SMALL_STATE(244)] = 4303,
  [SMALL_STATE(245)] = 4312,
  [SMALL_STATE(246)] = 4321,
  [SMALL_STATE(247)] = 4330,
  [SMALL_STATE(248)] = 4339,
  [SMALL_STATE(249)] = 4348,
  [SMALL_STATE(250)] = 4357,
  [SMALL_STATE(251)] = 4366,
  [SMALL_STATE(252)] = 4375,
  [SMALL_STATE(253)] = 4384,
  [SMALL_STATE(254)] = 4393,
  [SMALL_STATE(255)] = 4402,
  [SMALL_STATE(256)] = 4411,
  [SMALL_STATE(257)] = 4424,
  [SMALL_STATE(258)] = 4433,
  [SMALL_STATE(259)] = 4442,
  [SMALL_STATE(260)] = 4451,
  [SMALL_STATE(261)] = 4460,
  [SMALL_STATE(262)] = 4469,
  [SMALL_STATE(263)] = 4478,
  [SMALL_STATE(264)] = 4487,
  [SMALL_STATE(265)] = 4496,
  [SMALL_STATE(266)] = 4505,
  [SMALL_STATE(267)] = 4515,
  [SMALL_STATE(268)] = 4525,
  [SMALL_STATE(269)] = 4535,
  [SMALL_STATE(270)] = 4543,
  [SMALL_STATE(271)] = 4551,
  [SMALL_STATE(272)] = 4559,
  [SMALL_STATE(273)] = 4569,
  [SMALL_STATE(274)] = 4577,
  [SMALL_STATE(275)] = 4585,
  [SMALL_STATE(276)] = 4593,
  [SMALL_STATE(277)] = 4603,
  [SMALL_STATE(278)] = 4611,
  [SMALL_STATE(279)] = 4618,
  [SMALL_STATE(280)] = 4625,
  [SMALL_STATE(281)] = 4632,
  [SMALL_STATE(282)] = 4639,
  [SMALL_STATE(283)] = 4646,
  [SMALL_STATE(284)] = 4653,
  [SMALL_STATE(285)] = 4660,
  [SMALL_STATE(286)] = 4667,
  [SMALL_STATE(287)] = 4674,
  [SMALL_STATE(288)] = 4681,
  [SMALL_STATE(289)] = 4688,
  [SMALL_STATE(290)] = 4695,
  [SMALL_STATE(291)] = 4702,
  [SMALL_STATE(292)] = 4709,
  [SMALL_STATE(293)] = 4716,
  [SMALL_STATE(294)] = 4723,
  [SMALL_STATE(295)] = 4730,
  [SMALL_STATE(296)] = 4737,
  [SMALL_STATE(297)] = 4744,
  [SMALL_STATE(298)] = 4751,
  [SMALL_STATE(299)] = 4758,
  [SMALL_STATE(300)] = 4765,
  [SMALL_STATE(301)] = 4772,
  [SMALL_STATE(302)] = 4779,
  [SMALL_STATE(303)] = 4786,
  [SMALL_STATE(304)] = 4793,
  [SMALL_STATE(305)] = 4800,
  [SMALL_STATE(306)] = 4807,
  [SMALL_STATE(307)] = 4814,
  [SMALL_STATE(308)] = 4821,
  [SMALL_STATE(309)] = 4828,
  [SMALL_STATE(310)] = 4835,
  [SMALL_STATE(311)] = 4842,
  [SMALL_STATE(312)] = 4849,
  [SMALL_STATE(313)] = 4856,
  [SMALL_STATE(314)] = 4863,
  [SMALL_STATE(315)] = 4870,
  [SMALL_STATE(316)] = 4877,
  [SMALL_STATE(317)] = 4884,
  [SMALL_STATE(318)] = 4891,
  [SMALL_STATE(319)] = 4898,
  [SMALL_STATE(320)] = 4905,
  [SMALL_STATE(321)] = 4912,
  [SMALL_STATE(322)] = 4919,
  [SMALL_STATE(323)] = 4926,
  [SMALL_STATE(324)] = 4933,
  [SMALL_STATE(325)] = 4940,
};

static const TSParseActionEntry ts_parse_actions[] = {
  [0] = {.entry = {.count = 0, .reusable = false}},
  [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
  [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(),
  [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0),
  [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303),
  [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279),
  [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319),
  [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305),
  [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(324),
  [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(),
  [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276),
  [21] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 2, 0, 9),
  [23] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 2, 0, 9),
  [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315),
  [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(163),
  [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163),
  [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
  [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
  [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
  [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268),
  [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 3, 0, 17),
  [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 3, 0, 17),
  [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 47),
  [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 5, 0, 47),
  [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 91),
  [49] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 6, 0, 91),
  [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 3, 0, 16),
  [53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 3, 0, 16),
  [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 3, 0, 15),
  [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 3, 0, 15),
  [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 30),
  [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 4, 0, 30),
  [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 37),
  [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 4, 0, 37),
  [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 38),
  [69] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 4, 0, 38),
  [71] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 65),
  [73] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 5, 0, 65),
  [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 140),
  [77] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 8, 0, 140),
  [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 118),
  [81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 7, 0, 118),
  [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 79),
  [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 6, 0, 79),
  [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 80),
  [89] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 6, 0, 80),
  [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 119),
  [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 7, 0, 119),
  [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 106),
  [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attack_step, 7, 0, 106),
  [99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__asset_expr_primary, 1, 0, 0),
  [101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289),
  [103] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__asset_expr_primary, 1, 0, 0),
  [105] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_attack_step_repeat1, 2, 0, 0),
  [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attack_step_repeat1, 2, 0, 0),
  [109] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attack_step_repeat1, 2, 0, 0), SHIFT_REPEAT(315),
  [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_expr_unop, 2, 0, 46),
  [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asset_expr_unop, 2, 0, 46),
  [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_expr_binop, 3, 0, 76),
  [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69),
  [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294),
  [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asset_expr_binop, 3, 0, 76),
  [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
  [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_variable_substitution, 3, 0, 75),
  [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asset_variable_substitution, 3, 0, 75),
  [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_expr_type, 4, 0, 102),
  [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asset_expr_type, 4, 0, 102),
  [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__inline_asset_expr, 3, 0, 0),
  [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__inline_asset_expr, 3, 0, 0),
  [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 69),
  [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 31),
  [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 39),
  [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 3, 0, 18),
  [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 34),
  [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 81),
  [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 95),
  [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 56),
  [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 107),
  [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 110),
  [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 66),
  [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 144),
  [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_expr, 1, 0, 0),
  [164] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74),
  [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
  [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 120),
  [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 129),
  [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 141),
  [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 156),
  [176] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51),
  [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 3, 0, 48),
  [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 3, 0, 48),
  [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
  [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0),
  [186] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(303),
  [189] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(279),
  [192] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(319),
  [195] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(305),
  [198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0),
  [200] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58),
  [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 2, 0, 24),
  [204] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 2, 0, 24),
  [206] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_category_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(324),
  [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_category_declaration_repeat1, 2, 0, 0),
  [211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_category_declaration_repeat1, 2, 0, 0),
  [213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector_context, 4, 0, 0),
  [215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector_context, 4, 0, 0),
  [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66),
  [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
  [221] = {.entry = {.count = 1, .reusable = false}}, SHIFT(102),
  [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 4, 0, 83),
  [225] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 4, 0, 83),
  [227] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95),
  [229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector_context, 3, 0, 0),
  [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector_context, 3, 0, 0),
  [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attack_step_repeat2, 2, 0, 0),
  [235] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attack_step_repeat2, 2, 0, 0), SHIFT_REPEAT(163),
  [238] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attack_step_repeat2, 2, 0, 0), SHIFT_REPEAT(163),
  [241] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132),
  [243] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87),
  [245] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75),
  [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 3, 0, 49),
  [249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 3, 0, 49),
  [251] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85),
  [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
  [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71),
  [257] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ttc, 3, 0, 0),
  [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ttc, 3, 0, 0),
  [261] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_meta, 4, 0, 6),
  [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 4, 0, 6),
  [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156),
  [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__ttc_primary, 1, 0, 0),
  [269] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__ttc_primary, 1, 0, 0),
  [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 4, 0, 84),
  [273] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 4, 0, 84),
  [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 4, 0, 85),
  [277] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 4, 0, 85),
  [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 3, 0, 50),
  [281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 3, 0, 50),
  [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector, 5, 0, 113),
  [285] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_detector, 5, 0, 113),
  [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ttc_binop, 3, 0, 76),
  [289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ttc_binop, 3, 0, 76),
  [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
  [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196),
  [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314),
  [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285),
  [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203),
  [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214),
  [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ttc_distribution, 4, 0, 114),
  [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ttc_distribution, 4, 0, 114),
  [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_preconditions_repeat1, 2, 0, 0),
  [309] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_preconditions_repeat1, 2, 0, 0), SHIFT_REPEAT(63),
  [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263),
  [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__ttc_parenthesized, 3, 0, 0),
  [316] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__ttc_parenthesized, 3, 0, 0),
  [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ttc_distribution, 3, 0, 75),
  [320] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ttc_distribution, 3, 0, 75),
  [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ttc_distribution, 5, 0, 136),
  [324] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ttc_distribution, 5, 0, 136),
  [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
  [328] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56),
  [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preconditions, 3, 0, 51),
  [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
  [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175),
  [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260),
  [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195),
  [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preconditions, 2, 0, 25),
  [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
  [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188),
  [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 154),
  [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64),
  [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59),
  [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 28),
  [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 32),
  [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 35),
  [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 40),
  [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184),
  [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187),
  [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82),
  [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 54),
  [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 57),
  [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 60),
  [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 63),
  [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 67),
  [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_definition, 1, 0, 0),
  [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 70),
  [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, 0, 166),
  [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_asset_definition_repeat1, 2, 0, 0),
  [384] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asset_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(314),
  [387] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asset_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(285),
  [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 87),
  [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 93),
  [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 96),
  [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 99),
  [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 104),
  [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 108),
  [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 111),
  [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 116),
  [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 122),
  [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 127),
  [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 130),
  [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 133),
  [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 138),
  [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 3, 0, 13),
  [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 142),
  [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 145),
  [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 149),
  [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 157),
  [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 160),
  [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
  [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 77),
  [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135),
  [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284),
  [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302),
  [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_category_declaration, 4, 0, 2),
  [440] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_category_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(299),
  [443] = {.entry = {.count = 1, .reusable = false}}, SHIFT(299),
  [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89),
  [447] = {.entry = {.count = 1, .reusable = false}}, SHIFT(282),
  [449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_category_declaration, 5, 0, 4),
  [451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_category_declaration_repeat2, 2, 0, 0),
  [453] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_category_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(284),
  [456] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_category_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(302),
  [459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_define_declaration, 4, 0, 3),
  [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138),
  [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_category_declaration, 5, 0, 5),
  [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1, 0, 0),
  [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_associations_declaration, 3, 0, 0),
  [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148),
  [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93),
  [473] = {.entry = {.count = 1, .reusable = false}}, SHIFT(308),
  [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_include_declaration, 2, 0, 1),
  [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_category_declaration, 6, 0, 7),
  [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142),
  [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reaching, 3, 0, 52),
  [483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_associations_declaration, 4, 0, 0),
  [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reaching, 2, 0, 26),
  [487] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_association, 13, 0, 163), SHIFT(299),
  [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_association, 13, 0, 163),
  [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298),
  [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151),
  [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274),
  [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
  [500] = {.entry = {.count = 1, .reusable = false}}, SHIFT(194),
  [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299),
  [504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
  [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81),
  [508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77),
  [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90),
  [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
  [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149),
  [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183),
  [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267),
  [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
  [522] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_associations_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(298),
  [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_associations_declaration_repeat1, 2, 0, 0),
  [527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144),
  [529] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_association, 14, 0, 170), SHIFT(299),
  [532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_association, 14, 0, 170),
  [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
  [536] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 92),
  [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 55),
  [540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 58),
  [542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 59),
  [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 61),
  [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 62),
  [548] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 7, 0, 22),
  [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 64),
  [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 36),
  [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 68),
  [556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 71),
  [558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 72),
  [560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 8, 0, 73),
  [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 9, 0, 74),
  [564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280),
  [566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector_name, 1, 0, 0),
  [568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_star, 1, 0, 0),
  [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cias_repeat1, 2, 0, 0),
  [572] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_cias_repeat1, 2, 0, 0), SHIFT_REPEAT(312),
  [575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 78),
  [577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_multiplicity, 1, 0, 0),
  [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155),
  [581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 5, 0, 8),
  [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272),
  [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
  [587] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_detector_name_repeat1, 2, 0, 0), SHIFT_REPEAT(280),
  [590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_detector_name_repeat1, 2, 0, 0),
  [592] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 41),
  [594] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 5, 0, 10),
  [596] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 7, 0, 42),
  [598] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216),
  [600] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
  [602] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 7, 0, 43),
  [604] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 5, 0, 5),
  [606] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 86),
  [608] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 88),
  [610] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 89),
  [612] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 90),
  [614] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 8, 0, 44),
  [616] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 94),
  [618] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 8, 0, 45),
  [620] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 97),
  [622] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 98),
  [624] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 100),
  [626] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 6, 0, 101),
  [628] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 103),
  [630] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 105),
  [632] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 6, 0, 11),
  [634] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 7, 0, 23),
  [636] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 6, 0, 20),
  [638] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 112),
  [640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 6, 0, 12),
  [642] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_detector_context_repeat1, 2, 0, 0), SHIFT_REPEAT(272),
  [645] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_detector_context_repeat1, 2, 0, 0),
  [647] = {.entry = {.count = 1, .reusable = false}}, SHIFT(271),
  [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
  [651] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 115),
  [653] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 117),
  [655] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cias, 2, 0, 0),
  [657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312),
  [659] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 121),
  [661] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 123),
  [663] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 124),
  [665] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 125),
  [667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 126),
  [669] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 128),
  [671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
  [673] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 131),
  [675] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 132),
  [677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector_name, 2, 0, 0),
  [679] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 134),
  [681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 135),
  [683] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_ttc_distribution_repeat1, 2, 0, 0), SHIFT_REPEAT(216),
  [686] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_ttc_distribution_repeat1, 2, 0, 0),
  [688] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 137),
  [690] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 139),
  [692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 27),
  [694] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 143),
  [696] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 3, 0, 14),
  [698] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_variable, 4, 0, 3),
  [700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 146),
  [702] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 8, 0, 147),
  [704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 148),
  [706] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 29),
  [708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 150),
  [710] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 151),
  [712] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 152),
  [714] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 153),
  [716] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 155),
  [718] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 158),
  [720] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 159),
  [722] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 161),
  [724] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 9, 0, 162),
  [726] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, 0, 164),
  [728] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, 0, 165),
  [730] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cias, 1, 0, 0),
  [732] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, 0, 167),
  [734] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, 0, 168),
  [736] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 10, 0, 169),
  [738] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 4, 0, 2),
  [740] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 11, 0, 171),
  [742] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 5, 0, 53),
  [744] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asset_declaration, 6, 0, 19),
  [746] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 4, 0, 33),
  [748] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attack_step, 7, 0, 109),
  [750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297),
  [752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256),
  [754] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_detector_context_asset, 2, 0, 82),
  [756] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_multiplicity_range, 3, 0, 21),
  [758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192),
  [760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157),
  [762] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273),
  [764] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182),
  [766] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158),
  [768] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210),
  [770] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293),
  [772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
  [774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288),
  [776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100),
  [778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292),
  [780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
  [782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286),
  [784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325),
  [786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153),
  [788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146),
  [790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311),
  [792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
  [794] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
  [796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270),
  [798] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301),
  [800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291),
  [802] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287),
  [804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296),
  [806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137),
  [808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147),
  [810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
  [812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166),
  [814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211),
  [816] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
  [818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164),
  [820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317),
  [822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
  [824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
  [826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277),
  [828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181),
  [830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295),
  [832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
  [834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300),
  [836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140),
  [838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212),
  [840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309),
  [842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65),
  [844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201),
  [846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320),
  [848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193),
  [850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322),
  [852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236),
};

#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_mal(void) {
  static const TSLanguage language = {
    .abi_version = LANGUAGE_VERSION,
    .symbol_count = SYMBOL_COUNT,
    .alias_count = ALIAS_COUNT,
    .token_count = TOKEN_COUNT,
    .external_token_count = EXTERNAL_TOKEN_COUNT,
    .state_count = STATE_COUNT,
    .large_state_count = LARGE_STATE_COUNT,
    .production_id_count = PRODUCTION_ID_COUNT,
    .supertype_count = SUPERTYPE_COUNT,
    .field_count = FIELD_COUNT,
    .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
    .parse_table = &ts_parse_table[0][0],
    .small_parse_table = ts_small_parse_table,
    .small_parse_table_map = ts_small_parse_table_map,
    .parse_actions = ts_parse_actions,
    .symbol_names = ts_symbol_names,
    .field_names = ts_field_names,
    .field_map_slices = ts_field_map_slices,
    .field_map_entries = ts_field_map_entries,
    .symbol_metadata = ts_symbol_metadata,
    .public_symbol_map = ts_symbol_map,
    .alias_map = ts_non_terminal_alias_map,
    .alias_sequences = &ts_alias_sequences[0][0],
    .lex_modes = (const void*)ts_lex_modes,
    .lex_fn = ts_lex,
    .keyword_lex_fn = ts_lex_keywords,
    .keyword_capture_token = sym_identifier,
    .primary_state_ids = ts_primary_state_ids,
    .name = "mal",
    .max_reserved_word_set_size = 0,
    .metadata = {
      .major_version = 1,
      .minor_version = 0,
      .patch_version = 0,
    },
  };
  return &language;
}
#ifdef __cplusplus
}
#endif
