#ifndef MARPAESLIF_INTERNAL_ESLIF_H
#define MARPAESLIF_INTERNAL_ESLIF_H

#define G1_RULE_STATEMENTS                       "G1_rule_statements"
#define G1_RULE_STATEMENT_01                     "G1_rule_statement_01"
#define G1_RULE_STATEMENT_02                     "G1_rule_statement_02"
#define G1_RULE_STATEMENT_03                     "G1_rule_statement_03"
#define G1_RULE_STATEMENT_04                     "G1_rule_statement_04"
#define G1_RULE_STATEMENT_05                     "G1_rule_statement_05"
#define G1_RULE_STATEMENT_06                     "G1_rule_statement_06"
#define G1_RULE_STATEMENT_07                     "G1_rule_statement_07"
#define G1_RULE_STATEMENT_08                     "G1_rule_statement_08"
#define G1_RULE_STATEMENT_09                     "G1_rule_statement_09"
#define G1_RULE_STATEMENT_10                     "G1_rule_statement_10"
#define G1_RULE_STATEMENT_11                     "G1_rule_statement_11"
#define G1_RULE_STATEMENT_12                     "G1_rule_statement_12"
#define G1_RULE_STATEMENT_13                     "G1_rule_statement_13"
#define G1_RULE_STATEMENT_14                     "G1_rule_statement_14"
#define G1_RULE_STATEMENT_15                     "G1_rule_statement_15"
#define G1_RULE_STATEMENT_16                     "G1_rule_statement_16"
#define G1_RULE_STATEMENT_17                     "G1_rule_statement_17"
#define G1_RULE_STATEMENT_18                     "G1_rule_statement_18"
#define G1_RULE_STATEMENT_19                     "G1_rule_statement_19"
#define G1_RULE_STATEMENT_20                     "G1_rule_statement_20"
#define G1_RULE_STATEMENT_21                     "G1_rule_statement_21"
#define G1_RULE_START_RULE                       "G1_rule_start_rule"
#define G1_RULE_START_SYMBOL_1                   "G1_rule_start_symbol_1"
#define G1_RULE_START_SYMBOL_2                   "G1_rule_start_symbol_2"
#define G1_RULE_DESC_RULE                        "G1_rule_desc_rule"
#define G1_RULE_EMPTY_RULE                       "G1_rule_empty_rule"
#define G1_RULE_NULL_STATEMENT                   "G1_rule_null_statement"
#define G1_RULE_STATEMENT_GROUP                  "G1_rule_statement_group"
#define G1_RULE_PRIORITY_RULE                    "G1_rule_priority_rule"
#define G1_RULE_QUANTIFIED_RULE                  "G1_rule_quantified_rule"
#define G1_RULE_DISCARD_RULE                     "G1_rule_discard_rule"
#define G1_RULE_DEFAULT_RULE                     "G1_rule_default_rule"
#define G1_RULE_LEXEME_RULE                      "G1_rule_lexeme_rule"
#define G1_RULE_TERMINAL_RULE                    "G1_rule_terminal_rule"
#define G1_RULE_SYMBOL_RULE                      "G1_rule_symbol_rule"
#define G1_RULE_COMPLETION_EVENT_DECLARATION_1   "G1_rule_completion_event_declaration_1"
#define G1_RULE_COMPLETION_EVENT_DECLARATION_2   "G1_rule_completion_event_declaration_2"
#define G1_RULE_NULLED_EVENT_DECLARATION_1       "G1_rule_nulled_event_declaration_1"
#define G1_RULE_NULLED_EVENT_DECLARATION_2       "G1_rule_nulled_event_declaration_2"
#define G1_RULE_PREDICTED_EVENT_DECLARATION_1    "G1_rule_predicted_event_declaration_1"
#define G1_RULE_PREDICTED_EVENT_DECLARATION_2    "G1_rule_predicted_event_declaration_2"
#define G1_RULE_INACCESSIBLE_STATEMENT           "G1_rule_inaccessible_statement"
#define G1_RULE_INACCESSIBLE_TREATMENT_1         "G1_rule_inaccessible_treatment_1"
#define G1_RULE_INACCESSIBLE_TREATMENT_2         "G1_rule_inaccessible_treatment_2"
#define G1_RULE_INACCESSIBLE_TREATMENT_3         "G1_rule_inaccessible_treatment_3"
#define G1_RULE_EXCEPTION_STATEMENT              "G1_rule_exception_statement"
#define G1_RULE_AUTORANK_STATEMENT               "G1_rule_autorank_statement"
#define G1_RULE_OP_DECLARE_1                     "G1_rule_op_declare_1"
#define G1_RULE_OP_DECLARE_2                     "G1_rule_op_declare_2"
#define G1_RULE_OP_DECLARE_3                     "G1_rule_op_declare_3"
#define G1_RULE_PRIORITIES                       "G1_rule_priorities"
#define G1_RULE_ALTERNATIVES                     "G1_rule_alternatives"
#define G1_RULE_ALTERNATIVE                      "G1_rule_alternative"
#define G1_RULE_ADVERB_LIST                      "G1_rule_adverb_list"
#define G1_RULE_ADVERB_LIST_ITEMS                "G1_rule_adverb_list_items"
#define G1_RULE_ADVERB_ITEM_01                   "G1_rule_adverb_item_01"
#define G1_RULE_ADVERB_ITEM_02                   "G1_rule_adverb_item_02"
#define G1_RULE_ADVERB_ITEM_03                   "G1_rule_adverb_item_03"
#define G1_RULE_ADVERB_ITEM_04                   "G1_rule_adverb_item_04"
#define G1_RULE_ADVERB_ITEM_05                   "G1_rule_adverb_item_05"
#define G1_RULE_ADVERB_ITEM_06                   "G1_rule_adverb_item_06"
#define G1_RULE_ADVERB_ITEM_07                   "G1_rule_adverb_item_07"
#define G1_RULE_ADVERB_ITEM_08                   "G1_rule_adverb_item_08"
#define G1_RULE_ADVERB_ITEM_09                   "G1_rule_adverb_item_09"
#define G1_RULE_ADVERB_ITEM_10                   "G1_rule_adverb_item_10"
#define G1_RULE_ADVERB_ITEM_11                   "G1_rule_adverb_item_11"
#define G1_RULE_ADVERB_ITEM_12                   "G1_rule_adverb_item_12"
#define G1_RULE_ADVERB_ITEM_13                   "G1_rule_adverb_item_13"
#define G1_RULE_ADVERB_ITEM_14                   "G1_rule_adverb_item_14"
#define G1_RULE_ADVERB_ITEM_15                   "G1_rule_adverb_item_15"
#define G1_RULE_ADVERB_ITEM_16                   "G1_rule_adverb_item_16"
#define G1_RULE_ADVERB_ITEM_17                   "G1_rule_adverb_item_17"
#define G1_RULE_ADVERB_ITEM_18                   "G1_rule_adverb_item_18"
#define G1_RULE_ADVERB_ITEM_19                   "G1_rule_adverb_item_19"
#define G1_RULE_ADVERB_ITEM_20                   "G1_rule_adverb_item_20"
#define G1_RULE_ADVERB_ITEM_21                   "G1_rule_adverb_item_21"
#define G1_RULE_ADVERB_ITEM_22                   "G1_rule_adverb_item_22"
#define G1_RULE_ADVERB_ITEM_23                   "G1_rule_adverb_item_23"
#define G1_RULE_ADVERB_ITEM_24                   "G1_rule_adverb_item_24"
#define G1_RULE_ACTION_1                         "G1_rule_action_1"
#define G1_RULE_ACTION_2                         "G1_rule_action_2"
#define G1_RULE_ACTION_3                         "G1_rule_action_3"
#define G1_RULE_SYMBOL_ACTION_1                  "G1_rule_symbol_action_1"
#define G1_RULE_SYMBOL_ACTION_2                  "G1_rule_symbol_action_2"
#define G1_RULE_SYMBOL_ACTION_3                  "G1_rule_symbol_action_3"
#define G1_RULE_LEFT_ASSOCIATION                 "G1_rule_left_association"
#define G1_RULE_RIGHT_ASSOCIATION                "G1_rule_right_association"
#define G1_RULE_GROUP_ASSOCIATION                "G1_rule_group_association"
#define G1_RULE_SEPARATOR_SPECIFICATION          "G1_rule_separator_specification"
#define G1_RULE_PROPER_SPECIFICATION_1           "G1_rule_proper_specification_1"
#define G1_RULE_PROPER_SPECIFICATION_2           "G1_rule_proper_specification_2"
#define G1_RULE_HIDESEPARATOR_SPECIFICATION_1    "G1_rule_hideseparator_specification_1"
#define G1_RULE_HIDESEPARATOR_SPECIFICATION_2    "G1_rule_hideseparator_specification_2"
#define G1_RULE_RANK_SPECIFICATION               "G1_rule_rank_specification"
#define G1_RULE_NULL_RANKING_SPECIFICATION_1     "G1_rule_null_ranking_specification_1"
#define G1_RULE_NULL_RANKING_SPECIFICATION_2     "G1_rule_null_ranking_specification_2"
#define G1_RULE_NULL_RANKING_CONSTANT_1          "G1_rule_null_ranking_constant_1"
#define G1_RULE_NULL_RANKING_CONSTANT_2          "G1_rule_null_ranking_constant_2"
#define G1_RULE_PRIORITY_SPECIFICATION           "G1_rule_priority_specification"
#define G1_RULE_PAUSE_SPECIFICATION_1            "G1_rule_pause_specification_1"
#define G1_RULE_PAUSE_SPECIFICATION_2            "G1_rule_pause_specification_2"
#define G1_RULE_EVENT_SPECIFICATION              "G1_rule_event_specification"
#define G1_RULE_EVENT_INITIALIZATION             "G1_rule_event_initialization"
#define G1_RULE_EVENT_INITIALIZER_1              "G1_rule_event_initializer_1"
#define G1_RULE_ON_OR_OFF_1                      "G1_rule_on_or_off_1"
#define G1_RULE_ON_OR_OFF_2                      "G1_rule_on_or_off_2"
#define G1_RULE_EVENT_INITIALIZER_2              "G1_rule_event_initializer_2"
#define G1_RULE_LATM_SPECIFICATION_1             "G1_rule_latm_specification_1"
#define G1_RULE_LATM_SPECIFICATION_2             "G1_rule_latm_specification_2"
#define G1_RULE_DISCARD_IS_FALLBACK_SPECIFICATION_1 "G1_rule_discard_is_fallback_specification_1"
#define G1_RULE_DISCARD_IS_FALLBACK_SPECIFICATION_2 "G1_rule_discard_is_fallback_specification_2"
#define G1_RULE_VERBOSE_SPECIFICATION_1          "G1_rule_verbose_specification_1"
#define G1_RULE_VERBOSE_SPECIFICATION_2          "G1_rule_verbose_specification_2"
#define G1_RULE_NAMING                           "G1_rule_naming"
#define G1_RULE_NULL_ADVERB                      "G1_rule_null_adverb"
#define G1_RULE_ALTERNATIVE_NAME_1               "G1_rule_alternative_name_1"
#define G1_RULE_ALTERNATIVE_NAME_2               "G1_rule_alternative_name_2"
#define G1_RULE_EVENT_NAME_1                     "G1_rule_event_name_1"
#define G1_RULE_EVENT_NAME_2                     "G1_rule_event_name_2"
#define G1_RULE_EVENT_NAME_3                     "G1_rule_event_name_3"
#define G1_RULE_EVENT_NAME_4                     "G1_rule_event_name_4"
#define G1_RULE_EVENT_NAME_5                     "G1_rule_event_name_4"
#define G1_RULE_LHS_1                            "G1_rule_lhs_1"
#define G1_RULE_LHS_2                            "G1_rule_lhs_2"
#define G1_RULE_RHS                              "G1_rule_rhs"
#define G1_RULE_RHS_ALTERNATIVE_1                "G1_rule_rhs_alternative_1"
#define G1_RULE_RHS_ALTERNATIVE_2                "G1_rule_rhs_alternative_2"
#define G1_RULE_RHS_ALTERNATIVE_3                "G1_rule_rhs_alternative_3"
#define G1_RULE_RHS_ALTERNATIVE_4                "G1_rule_rhs_alternative_4"
#define G1_RULE_RHS_ALTERNATIVE_5                "G1_rule_rhs_alternative_5"
#define G1_RULE_RHS_ALTERNATIVE_6                "G1_rule_rhs_alternative_6"
#define G1_RULE_RHS_ALTERNATIVE_7                "G1_rule_rhs_alternative_7"
#define G1_RULE_RHS_ALTERNATIVE_8                "G1_rule_rhs_alternative_8"
#define G1_RULE_RHS_ALTERNATIVE_9                "G1_rule_rhs_alternative_9"
#define G1_RULE_RHS_ALTERNATIVE_10               "G1_rule_rhs_alternative_10"
#define G1_RULE_RHS_PRIMARY_NO_PARAMETER_1       "G1_rule_rhs_primary_no_parameter_1"
#define G1_RULE_RHS_PRIMARY_NO_PARAMETER_2       "G1_rule_rhs_primary_no_parameter_2"
#define G1_RULE_RHS_PRIMARY_NO_PARAMETER_3       "G1_rule_rhs_primary_no_parameter_3"
#define G1_RULE_RHS_PRIMARY_1                    "G1_rule_rhs_primary_1"
#define G1_RULE_RHS_PRIMARY_2                    "G1_rule_rhs_primary_2"
#define G1_RULE_RHS_PRIMARY_3                    "G1_rule_rhs_primary_3"
#define G1_RULE_SINGLE_SYMBOL_1                  "G1_rule_single_symbol_1"
#define G1_RULE_SINGLE_SYMBOL_2                  "G1_rule_single_symbol_2"
#define G1_RULE_TERMINAL_1                       "G1_rule_terminal_1"
#define G1_RULE_TERMINAL_2                       "G1_rule_terminal_2"
#define G1_RULE_TERMINAL_3                       "G1_rule_terminal_3"
#define G1_RULE_TERMINAL_4                       "G1_rule_terminal_4"
#define G1_RULE_TERMINAL_5                       "G1_rule_terminal_5"
#define G1_RULE_TERMINAL_6                       "G1_rule_terminal_6"
#define G1_RULE_SYMBOL                           "G1_rule_symbol"
#define G1_RULE_SYMBOL_NAME_1                    "G1_rule_symbol_name_1"
#define G1_RULE_SYMBOL_NAME_2                    "G1_rule_symbol_name_2"
#define G1_RULE_ACTION_NAME_1                    "G1_rule_action_name_1"
#define G1_RULE_ACTION_NAME_2                    "G1_rule_action_name_2"
#define G1_RULE_ACTION_NAME_3                    "G1_rule_action_name_3"
#define G1_RULE_ACTION_NAME_4                    "G1_rule_action_name_4"
#define G1_RULE_ACTION_NAME_5                    "G1_rule_action_name_5"
#define G1_RULE_ACTION_NAME_6                    "G1_rule_action_name_6"
#define G1_RULE_ACTION_NAME_7                    "G1_rule_action_name_7"
#define G1_RULE_ACTION_NAME_8                    "G1_rule_action_name_8"
#define G1_RULE_ACTION_NAME_9                    "G1_rule_action_name_9"
#define G1_RULE_ACTION_NAME_10                   "G1_rule_action_name_10"
#define G1_RULE_ACTION_NAME_11                   "G1_rule_action_name_11"
#define G1_RULE_ACTION_NAME_12                   "G1_rule_action_name_12"
#define G1_RULE_ACTION_NAME_13                   "G1_rule_action_name_13"
#define G1_RULE_ACTION_NAME_14                   "G1_rule_action_name_14"
#define G1_RULE_ACTION_NAME_15                   "G1_rule_action_name_15"
#define G1_RULE_SYMBOLACTION_NAME_1              "G1_rule_symbolaction_name_1"
#define G1_RULE_SYMBOLACTION_NAME_2              "G1_rule_symbolaction_name_2"
#define G1_RULE_SYMBOLACTION_NAME_3              "G1_rule_symbolaction_name_3"
#define G1_RULE_SYMBOLACTION_NAME_4              "G1_rule_symbolaction_name_4"
#define G1_RULE_SYMBOLACTION_NAME_5              "G1_rule_symbolaction_name_5"
#define G1_RULE_SYMBOLACTION_NAME_6              "G1_rule_symbolaction_name_6"
#define G1_RULE_SYMBOLACTION_NAME_7              "G1_rule_symbolaction_name_7"
#define G1_RULE_SYMBOLACTION_NAME_8              "G1_rule_symbolaction_name_8"
#define G1_RULE_SYMBOLACTION_NAME_9              "G1_rule_symbolaction_name_9"
#define G1_RULE_SYMBOLACTION_NAME_10             "G1_rule_symbolaction_name_10"
#define G1_RULE_SYMBOLACTION_NAME_11             "G1_rule_symbolaction_name_11"
#define G1_RULE_SYMBOLACTION_NAME_12             "G1_rule_symbolaction_name_12"
#define G1_RULE_QUANTIFIER_1                     "G1_rule_quantifier_1"
#define G1_RULE_QUANTIFIER_2                     "G1_rule_quantifier_2"
#define G1_RULE_SIGNED_INTEGER                   "G1_rule_signed_integer"
#define G1_RULE_UNSIGNED_INTEGER                 "G1_rule_unsigned_integer"
#define G1_RULE_GRAMMAR_REFERENCE_1              "G1_rule_grammar_reference_1"
#define G1_RULE_GRAMMAR_REFERENCE_2              "G1_rule_grammar_reference_2"
#define G1_RULE_GRAMMAR_REFERENCE_3              "G1_rule_grammar_reference_3"
#define G1_RULE_DISCARD_1                        "G1_rule_discard_1"
#define G1_RULE_DISCARD_2                        "G1_rule_discard_2"
#define G1_RULE_DISCARD_3                        "G1_rule_discard_3"
#define G1_RULE_STRING_LITERAL                   "G1_rule_string_literal"
#define G1_RULE_STRING_LITERAL_UNIT              "G1_rule_string_literal_unit"
#define G1_RULE_STRING_LITERAL_INSIDE_ANY        "G1_rule_string_literal_inside_any"
#define G1_RULE_STRING_LITERAL_INSIDE_1          "G1_rule_string_literal_inside_1"
#define G1_RULE_STRING_LITERAL_INSIDE_2          "G1_rule_string_literal_inside_2"
#define G1_RULE_STRING_LITERAL_INSIDE_3          "G1_rule_string_literal_inside_3"
#define G1_RULE_STRING_LITERAL_INSIDE_4          "G1_rule_string_literal_inside_4"
#define G1_RULE_STRING_LITERAL_INSIDE_5          "G1_rule_string_literal_inside_5"
#define G1_RULE_DISCARD_ON                       "G1_rule_discard_on"
#define G1_RULE_DISCARD_OFF                      "G1_rule_discard_off"
#define G1_RULE_LUASCRIPT_STATEMENT              "G1_rule_luascript_statement"
#define G1_RULE_LUASCRIPT_SOURCE                 "G1_rule_luascript_source"
#define G1_RULE_IF_ACTION                        "G1_rule_if_action"
#define G1_RULE_IFACTION_NAME_1                  "G1_rule_ifaction_name_1"
#define G1_RULE_IFACTION_NAME_2                  "G1_rule_ifaction_name_2"
#define G1_RULE_IFACTION_NAME_3                  "G1_rule_ifaction_name_3"
#define G1_RULE_GENERATORACTION_NAME_1           "G1_rule_generatoraction_name_1"
#define G1_RULE_GENERATORACTION_NAME_2           "G1_rule_generatoraction_name_2"
#define G1_RULE_GENERATORACTION_NAME_3           "G1_rule_generatoraction_name_3"
#define G1_RULE_REGEX_ACTION                     "G1_rule_regex_action"
#define G1_RULE_REGEXACTION_NAME_1               "G1_rule_regexaction_name_1"
#define G1_RULE_REGEXACTION_NAME_2               "G1_rule_regexaction_name_2"
#define G1_RULE_REGEXACTION_NAME_3               "G1_rule_regexaction_name_3"
#define G1_RULE_GENERATOR_ACTION                 "G1_rule_generator_action"
#define G1_RULE_GENERATORACTION_NAME_1           "G1_rule_generatoraction_name_1"
#define G1_RULE_GENERATORACTION_NAME_2           "G1_rule_generatoraction_name_2"
#define G1_RULE_GENERATORACTION_NAME_3           "G1_rule_generatoraction_name_3"
#define G1_RULE_EVENT_ACTION                     "G1_rule_event_action"
#define G1_RULE_EVENTACTION_NAME_1               "G1_rule_eventaction_name_1"
#define G1_RULE_EVENTACTION_NAME_2               "G1_rule_eventaction_name_2"
#define G1_RULE_EVENTACTION_NAME_3               "G1_rule_eventaction_name_3"
#define G1_RULE_DEFAULT_ENCODING                 "G1_rule_default_encoding"
#define G1_RULE_DEFAULTENCODING_NAME             "G1_rule_defaultencoding_name"
#define G1_RULE_FALLBACK_ENCODING                "G1_rule_fallback_encoding"
#define G1_RULE_FALLBACKENCODING_NAME            "G1_rule_fallbackencoding_name"
#define G1_RULE_LUA_FUNCTION                     "G1_rule_lua_function"
#define G1_RULE_LUA_FUNCTIONCALL                 "G1_rule_lua_functioncall"
#define G1_RULE_LUA_FUNCTIONDECL                 "G1_rule_lua_functiondecl"

#define G1_ACTION_STATEMENTS                       "::undef"
#define G1_ACTION_STATEMENT_01                     "::undef"
#define G1_ACTION_STATEMENT_02                     "::undef"
#define G1_ACTION_STATEMENT_03                     "::undef"
#define G1_ACTION_STATEMENT_04                     "::undef"
#define G1_ACTION_STATEMENT_05                     "::undef"
#define G1_ACTION_STATEMENT_06                     "::undef"
#define G1_ACTION_STATEMENT_07                     "::undef"
#define G1_ACTION_STATEMENT_08                     "::undef"
#define G1_ACTION_STATEMENT_09                     "::undef"
#define G1_ACTION_STATEMENT_10                     "::undef"
#define G1_ACTION_STATEMENT_11                     "::undef"
#define G1_ACTION_STATEMENT_12                     "::undef"
#define G1_ACTION_STATEMENT_13                     "::undef"
#define G1_ACTION_STATEMENT_14                     "::undef"
#define G1_ACTION_STATEMENT_15                     "::undef"
#define G1_ACTION_STATEMENT_16                     "::undef"
#define G1_ACTION_STATEMENT_17                     "::undef"
#define G1_ACTION_STATEMENT_18                     "::undef"
#define G1_ACTION_STATEMENT_19                     "::undef"
#define G1_ACTION_STATEMENT_20                     "::undef"
#define G1_ACTION_STATEMENT_21                     "::undef"
#define G1_ACTION_START_RULE                       "063_G1_action_start_rule"                       /* done */
#define G1_ACTION_START_SYMBOL_1                   "114_G1_action_start_symbol_1"                   /* done */
#define G1_ACTION_START_SYMBOL_2                   "115_G1_action_start_symbol_2"                   /* done */
#define G1_ACTION_DESC_RULE                        "064_G1_action_desc_rule"                        /* done */
#define G1_ACTION_EMPTY_RULE                       "065_G1_action_empty_rule"                       /* done */
#define G1_ACTION_NULL_STATEMENT                   "::undef"
#define G1_ACTION_STATEMENT_GROUP                  "::undef"
#define G1_ACTION_PRIORITY_RULE                    "040_G1_action_priority_rule"                    /* done */
#define G1_ACTION_QUANTIFIED_RULE                  "062_G1_action_quantified_rule"                  /* done */
#define G1_ACTION_DISCARD_RULE                     "092_G1_action_discard_rule"                     /* done */
#define G1_ACTION_DEFAULT_RULE                     "066_G1_action_default_rule"                     /* done */
#define G1_ACTION_LEXEME_RULE                      "089_G1_action_lexeme_rule"                      /* done */
#define G1_ACTION_TERMINAL_RULE                    "090_G1_action_terminal_rule"                    /* done */
#define G1_ACTION_SYMBOL_RULE                      "091_G1_action_symbol_rule"                      /* done */
#define G1_ACTION_COMPLETION_EVENT_DECLARATION_1   "093_G1_action_completion_event_declaration_1"   /* done */
#define G1_ACTION_COMPLETION_EVENT_DECLARATION_2   "094_G1_action_completion_event_declaration_2"   /* done */
#define G1_ACTION_NULLED_EVENT_DECLARATION_1       "095_G1_action_nulled_event_declaration_1"       /* done */
#define G1_ACTION_NULLED_EVENT_DECLARATION_2       "096_G1_action_nulled_event_declaration_2"       /* done */
#define G1_ACTION_PREDICTED_EVENT_DECLARATION_1    "097_G1_action_predicted_event_declaration_1"    /* done */
#define G1_ACTION_PREDICTED_EVENT_DECLARATION_2    "098_G1_action_predicted_event_declaration_2"    /* done */
#define G1_ACTION_INACCESSIBLE_STATEMENT           "056_G1_action_inaccessible_statement"           /* done */
#define G1_ACTION_INACCESSIBLE_TREATMENT_1         "053_G1_action_inaccessible_treatment_1"         /* done */
#define G1_ACTION_INACCESSIBLE_TREATMENT_2         "054_G1_action_inaccessible_treatment_2"         /* done */
#define G1_ACTION_INACCESSIBLE_TREATMENT_3         "055_G1_action_inaccessible_treatment_3"         /* done */
#define G1_ACTION_EXCEPTION_STATEMENT              "101_G1_action_exception_statement"
#define G1_ACTION_AUTORANK_STATEMENT               "059_G1_action_autorank_statement"               /* done */
#define G1_ACTION_OP_DECLARE_1                     "000_G1_action_op_declare_1"                     /* done */
#define G1_ACTION_OP_DECLARE_2                     "001_G1_action_op_declare_2"                     /* done */
#define G1_ACTION_OP_DECLARE_3                     "002_G1_action_op_declare_3"                     /* done */
#define G1_ACTION_PRIORITIES                       "039_G1_action_priorities"                       /* done */
#define G1_ACTION_ALTERNATIVES                     "038_G1_action_alternatives"                     /* done */
#define G1_ACTION_ALTERNATIVE                      "037_G1_action_alternative"                      /* done */
#define G1_ACTION_ADVERB_LIST                      "::shift" /* This is a nullable - it will return undef if there is no adverb */
#define G1_ACTION_ADVERB_LIST_ITEMS                "004_G1_action_adverb_list_items"                /* done */
#define G1_ACTION_ADVERB_ITEM_01                   "::shift" /* <adverb item> ::= action */
#define G1_ACTION_ADVERB_ITEM_02                   "::shift" /* <adverb item> ::= <left association> */
#define G1_ACTION_ADVERB_ITEM_03                   "::shift" /* <adverb item> ::= <right association> */
#define G1_ACTION_ADVERB_ITEM_04                   "::shift" /* <adverb item> ::= <group association> */
#define G1_ACTION_ADVERB_ITEM_05                   "::shift" /* <adverb item> ::= <separator specification> */
#define G1_ACTION_ADVERB_ITEM_06                   "::shift" /* <adverb item> ::= <proper specification> */
#define G1_ACTION_ADVERB_ITEM_07                   "::shift" /* <adverb item> ::= <rank specification> */
#define G1_ACTION_ADVERB_ITEM_08                   "::shift" /* <adverb item> ::= <null ranking specification> */
#define G1_ACTION_ADVERB_ITEM_09                   "::shift" /* <adverb item> ::= <priority specification> */
#define G1_ACTION_ADVERB_ITEM_10                   "::shift" /* <adverb item> ::= <pause specification> */
#define G1_ACTION_ADVERB_ITEM_11                   "::shift" /* <adverb item> ::= <latm specification> */
#define G1_ACTION_ADVERB_ITEM_12                   "::shift" /* <adverb item> ::= naming */
#define G1_ACTION_ADVERB_ITEM_13                   "::shift" /* <adverb item> ::= <null adverb> */
#define G1_ACTION_ADVERB_ITEM_14                   "::shift" /* <adverb item> ::= <symbol action> */
#define G1_ACTION_ADVERB_ITEM_16                   "::shift" /* <adverb item> ::= <event specification> */
#define G1_ACTION_ADVERB_ITEM_17                   "::shift" /* <adverb item> ::= <hide separator specification> */
#define G1_ACTION_ADVERB_ITEM_18                   "::shift" /* <adverb item> ::= <if action> */
#define G1_ACTION_ADVERB_ITEM_19                   "::shift" /* <adverb item> ::= <event action> */
#define G1_ACTION_ADVERB_ITEM_20                   "::shift" /* <adverb item> ::= <default encoding> */
#define G1_ACTION_ADVERB_ITEM_21                   "::shift" /* <adverb item> ::= <fallback encoding> */
#define G1_ACTION_ADVERB_ITEM_22                   "::shift" /* <adverb item> ::= <regex action> */
#define G1_ACTION_ADVERB_ITEM_23                   "::shift" /* <adverb item> ::= <verbose specification> */
#define G1_ACTION_ADVERB_ITEM_24                   "::shift" /* <adverb item> ::= <discard is fallback specification> */
#define G1_ACTION_ACTION_1                         "005_G1_action_action_1"                         /* done */
#define G1_ACTION_ACTION_2                         "006_G1_action_action_2"                         /* done */
#define G1_ACTION_ACTION_3                         "007_G1_action_action_3"                         /* done */
#define G1_ACTION_SYMBOLACTION_1                   "013_G1_action_symbolaction_1"                   /* done */
#define G1_ACTION_SYMBOLACTION_2                   "014_G1_action_symbolaction_2"                   /* done */
#define G1_ACTION_SYMBOLACTION_3                   "015_G1_action_symbolaction_3"                   /* done */
#define G1_ACTION_LEFT_ASSOCIATION                 "016_G1_action_left_association"                 /* done */
#define G1_ACTION_RIGHT_ASSOCIATION                "017_G1_action_right_association"                /* done */
#define G1_ACTION_GROUP_ASSOCIATION                "018_G1_action_group_association"                /* done */
#define G1_ACTION_SEPARATOR_SPECIFICATION          "019_G1_action_separator_specification"          /* done */
#define G1_ACTION_PROPER_SPECIFICATION_1           "071_G1_action_proper_specification_1"           /* done */
#define G1_ACTION_PROPER_SPECIFICATION_2           "072_G1_action_proper_specification_2"           /* done */
#define G1_ACTION_HIDESEPARATOR_SPECIFICATION_1    "075_G1_action_hideseparator_specification_1"    /* done */
#define G1_ACTION_HIDESEPARATOR_SPECIFICATION_2    "076_G1_action_hideseparator_specification_2"    /* done */
#define G1_ACTION_RANK_SPECIFICATION               "077_G1_action_rank_specification"               /* done */
#define G1_ACTION_NULL_RANKING_SPECIFICATION_1     "078_G1_action_null_ranking_specification_1"     /* done */
#define G1_ACTION_NULL_RANKING_SPECIFICATION_2     "079_G1_action_null_ranking_specification_2"     /* done */
#define G1_ACTION_NULL_RANKING_CONSTANT_1          "080_G1_action_null_ranking_constant_1"          /* done */
#define G1_ACTION_NULL_RANKING_CONSTANT_2          "081_G1_action_null_ranking_constant_2"          /* done */
#define G1_ACTION_PRIORITY_SPECIFICATION           "084_G1_action_priority_specification"           /* done */
#define G1_ACTION_PAUSE_SPECIFICATION_1            "082_G1_action_pause_specification_1"            /* done */
#define G1_ACTION_PAUSE_SPECIFICATION_2            "083_G1_action_pause_specification_2"            /* done */
#define G1_ACTION_EVENT_SPECIFICATION              "088_G1_action_event_specification"              /* done */
#define G1_ACTION_EVENT_INITIALIZATION             "087_G1_action_event_initialization"             /* done */
#define G1_ACTION_EVENT_INITIALIZER_1              "085_G1_action_event_initializer_1"              /* done */
#define G1_ACTION_ON_OR_OFF_1                      "057_G1_action_on_or_off_1"                      /* done */
#define G1_ACTION_ON_OR_OFF_2                      "058_G1_action_on_or_off_2"                      /* done */
#define G1_ACTION_EVENT_INITIALIZER_2              "086_G1_action_event_initializer_2"              /* done */
#define G1_ACTION_LATM_SPECIFICATION_1             "067_G1_action_latm_specification_1"             /* done */
#define G1_ACTION_LATM_SPECIFICATION_2             "068_G1_action_latm_specification_2"             /* done */
#define G1_ACTION_DISCARD_IS_FALLBACK_SPECIFICATION_1 "069_G1_action_discard_is_fallback_specification_1" /* done */
#define G1_ACTION_DISCARD_IS_FALLBACK_SPECIFICATION_2 "070_G1_action_discard_is_fallback_specification_2" /* done */
#define G1_ACTION_VERBOSE_SPECIFICATION_1          "073_G1_action_verbose_specification_1"           /* done */
#define G1_ACTION_VERBOSE_SPECIFICATION_2          "074_G1_action_verbose_specification_2"           /* done */
#define G1_ACTION_NAMING                           "100_G1_action_naming"                            /* done */
#define G1_ACTION_NULL_ADVERB                      "::undef"
#define G1_ACTION_ALTERNATIVE_NAME_1               "::shift" /* <alternative name> ::= <standard name> */
#define G1_ACTION_ALTERNATIVE_NAME_2               "099_G1_action_alternative_name_2"               /* done */
#define G1_ACTION_EVENT_NAME_1                     "::ascii" /* <event name> ::= <ascii graph name> */
#define G1_ACTION_EVENT_NAME_2                     "::ascii" /* <event name> ::= ':symbol' */
#define G1_ACTION_EVENT_NAME_3                     "::ascii" /* <event name> ::= ':discard[on]' */
#define G1_ACTION_EVENT_NAME_4                     "::ascii" /* <event name> ::= ':discard[off]' */
#define G1_ACTION_EVENT_NAME_5                     "::ascii" /* <event name> ::= ':discard[switch]' */
#define G1_ACTION_LHS_1                            "112_G1_action_lhs_1" /* lhs ::= <symbol name> */
#define G1_ACTION_LHS_2                            "113_G1_action_lhs_2" /* lhs ::= <lhs> /\-\-?\(/ <lua optional parlist after lparen> */
#define G1_ACTION_RHS                              "003_G1_action_rhs"                              /* done */
#define G1_ACTION_RHS_ALTERNATIVE_1                "022_G1_action_rhs_alternative_1"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_2                "023_G1_action_rhs_alternative_2"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_3                "024_G1_action_rhs_alternative_3"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_4                "025_G1_action_rhs_alternative_4"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_5                "026_G1_action_rhs_alternative_5"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_6                "027_G1_action_rhs_alternative_6"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_7                "028_G1_action_rhs_alternative_7"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_8                "029_G1_action_rhs_alternative_8"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_9                "030_G1_action_rhs_alternative_9"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_10               "031_G1_action_rhs_alternative_10"               /* done */
#define G1_ACTION_RHS_PRIMARY_NO_PARAMETER_1       "032_G1_action_rhs_primary_no_parameter_1"       /* done */
#define G1_ACTION_RHS_PRIMARY_NO_PARAMETER_2       "033_G1_action_rhs_primary_no_parameter_2"       /* done */
#define G1_ACTION_RHS_PRIMARY_NO_PARAMETER_3       "034_G1_action_rhs_primary_no_parameter_3"       /* done */
#define G1_ACTION_RHS_PRIMARY_1                    "::shift"                                    /* done */
#define G1_ACTION_RHS_PRIMARY_2                    "035_G1_action_rhs_primary_2"                    /* done */
#define G1_ACTION_RHS_PRIMARY_3                    "036_G1_action_rhs_primary_3"                    /* done */
#define G1_ACTION_SINGLE_SYMBOL_1                  "041_G1_action_single_symbol_1"                  /* done */
#define G1_ACTION_SINGLE_SYMBOL_2                  "042_G1_action_single_symbol_2"                  /* done */
#define G1_ACTION_TERMINAL_1                       "043_G1_action_terminal_1"                       /* done */
#define G1_ACTION_TERMINAL_2                       "044_G1_action_terminal_2"                       /* done */
#define G1_ACTION_TERMINAL_3                       "045_G1_action_terminal_3"                       /* done */
#define G1_ACTION_TERMINAL_4                       "046_G1_action_terminal_4"                       /* done */
#define G1_ACTION_TERMINAL_5                       "047_G1_action_terminal_5"                       /* done */
#define G1_ACTION_TERMINAL_6                       "048_G1_action_terminal_6"                       /* done */
#define G1_ACTION_SYMBOL                           "049_G1_action_symbol" /* symbol ::= <symbol name> */
#define G1_ACTION_SYMBOL_NAME_1                    "020_G1_action_symbol_name_1" /* <symbol name> ::= <bare name> */
#define G1_ACTION_SYMBOL_NAME_2                    "021_G1_action_symbol_name_2" /* <symbol name> ::= <bracketed name> */ /* done */
#define G1_ACTION_ACTION_NAME_1                    "::ascii" /* <action name> ::= <ascii graph name> */
#define G1_ACTION_ACTION_NAME_2                    "::ascii" /* <action name> ::= '::shift' */
#define G1_ACTION_ACTION_NAME_3                    "::ascii" /* <action name> ::= '::undef' */
#define G1_ACTION_ACTION_NAME_4                    "::ascii" /* <action name> ::= '::ascii' */
#define G1_ACTION_ACTION_NAME_5                    "::ascii" /* <action name> ::= '::convert\\[[^\\]]+\\]/\n" */
#define G1_ACTION_ACTION_NAME_6                    "::ascii" /* <action name> ::= '::concat' */
#define G1_ACTION_ACTION_NAME_7                    "::ascii" /* <action name> ::= /::copy\\[\\d+\\]/ */
#define G1_ACTION_ACTION_NAME_8                    "::ascii" /* <action name> ::= <lua identifier> */
#define G1_ACTION_ACTION_NAME_9                    "::ascii" /* <action name> ::= '::true' */
#define G1_ACTION_ACTION_NAME_10                   "::ascii" /* <action name> ::= '::false' */
#define G1_ACTION_ACTION_NAME_11                   "::ascii" /* <action name> ::= '::json' */
#define G1_ACTION_ACTION_NAME_12                   "::ascii" /* <action name> ::= '::row' */
#define G1_ACTION_ACTION_NAME_13                   "::ascii" /* <action name> ::= '::table' */
#define G1_ACTION_ACTION_NAME_14                   "::ascii" /* <action name> ::= '::ast' */
#define G1_ACTION_ACTION_NAME_15                   "::shift" /* <action name> ::= <lua function> */
#define G1_ACTION_SYMBOLACTION_NAME_1              "::ascii" /* <symbol action name> ::= <ascii graph name> */
#define G1_ACTION_SYMBOLACTION_NAME_2              "::ascii" /* <symbol action name> ::= '::transfer' */
#define G1_ACTION_SYMBOLACTION_NAME_3              "::ascii" /* <symbol action name> ::= '::undef' */
#define G1_ACTION_SYMBOLACTION_NAME_4              "::ascii" /* <symbol action name> ::= '::ascii' */
#define G1_ACTION_SYMBOLACTION_NAME_5              "::ascii" /* <symbol action name> ::= '::convert\\[[^\\]]+\\]/\n" */
#define G1_ACTION_SYMBOLACTION_NAME_6              "::ascii" /* <symbol action name> ::= '::concat' */
#define G1_ACTION_SYMBOLACTION_NAME_7              "::ascii" /* <symbol action name> ::= <lua identifier> */
#define G1_ACTION_SYMBOLACTION_NAME_8              "::ascii" /* <symbol action name> ::= '::true' */
#define G1_ACTION_SYMBOLACTION_NAME_9              "::ascii" /* <symbol action name> ::= '::false' */
#define G1_ACTION_SYMBOLACTION_NAME_10             "::ascii" /* <symbol action name> ::= '::json' */
#define G1_ACTION_SYMBOLACTION_NAME_11             "::ascii" /* <symbol action name> ::= '::jsonf' */
#define G1_ACTION_SYMBOLACTION_NAME_12             "::shift" /* <symbol action name> ::= <lua function> */
#define G1_ACTION_QUANTIFIER_1                     "060_G1_action_quantifier_1"                     /* done */
#define G1_ACTION_QUANTIFIER_2                     "061_G1_action_quantifier_2"                     /* done */
#define G1_ACTION_SIGNED_INTEGER                   "::ascii" /* <signed integer> ::= /[+-]?\d+/ */
#define G1_ACTION_UNSIGNED_INTEGER                 "::ascii" /* <unsigned integer> ::= /\d+/ */
#define G1_ACTION_GRAMMAR_REFERENCE_1              "050_G1_action_grammar_reference_1"              /* done */
#define G1_ACTION_GRAMMAR_REFERENCE_2              "051_G1_action_grammar_reference_2"              /* done */
#define G1_ACTION_GRAMMAR_REFERENCE_3              "052_G1_action_grammar_reference_3"              /* done */
#define G1_ACTION_STRING_LITERAL                   "008_G1_action_string_literal"                   /* done */
#define G1_ACTION_STRING_LITERAL_UNIT              "::copy[2]" /* <string literal unit> ::= '::u8"' <switch :discard off> <string literal inside many> '"' <switch :discard on> */
#define G1_ACTION_STRING_LITERAL_INSIDE_ANY        "::concat" /* <string literal inside any> ::= <string literal inside>* */
#define G1_ACTION_STRING_LITERAL_INSIDE_1          "::shift" /* <string literal inside> ::= /[^"\\\n]/ */
#define G1_ACTION_STRING_LITERAL_INSIDE_2          "009_G1_action_string_literal_inside_2"          /* done */
#define G1_ACTION_STRING_LITERAL_INSIDE_3          "010_G1_action_string_literal_inside_3"          /* done */
#define G1_ACTION_STRING_LITERAL_INSIDE_4          "011_G1_action_string_literal_inside_4"          /* done */
#define G1_ACTION_STRING_LITERAL_INSIDE_5          "012_G1_action_string_literal_inside_5"          /* done */
#define G1_ACTION_DISCARD_ON                       "::undef"
#define G1_ACTION_DISCARD_OFF                      "::undef"
#define G1_ACTION_LUASCRIPT_STATEMENT              "102_G1_action_luascript_statement"
#define G1_ACTION_LUASCRIPT_SOURCE                 "::concat"
#define G1_ACTION_IFACTION_NAME_1                  "::ascii" /* <if action name> ::= <ascii graph name> */
#define G1_ACTION_IFACTION_NAME_2                  "::ascii" /* <if action name> ::= <lua action name> */
#define G1_ACTION_IFACTION_NAME_3                  "::shift" /* <if action name> ::= <lua function> */
#define G1_ACTION_IFACTION                         "103_G1_action_ifaction"                         /* done */
#define G1_ACTION_GENERATORACTION_NAME_1           "::ascii" /* <generator action name> ::= <ascii graph name> */
#define G1_ACTION_GENERATORACTION_NAME_2           "::ascii" /* <generator action name> ::= <lua action name> */
#define G1_ACTION_GENERATORACTION_NAME_3           "::shift" /* <generator action name> ::= <lua function> */
#define G1_ACTION_GENERATORACTION                  "105_G1_action_generatoraction"                         /* done */
#define G1_ACTION_REGEXACTION_NAME_1               "::ascii" /* <regex action name> ::= <ascii graph name> */
#define G1_ACTION_REGEXACTION_NAME_2               "::ascii" /* <regex action name> ::= <lua action name> */
#define G1_ACTION_REGEXACTION_NAME_3               "::shift" /* <regex action name> ::= <lua function> */
#define G1_ACTION_REGEXACTION                      "104_G1_action_regexaction"                       /* done */
#define G1_ACTION_GENERATORACTION_NAME_1           "::ascii" /* <generator action name> ::= <ascii graph name> */
#define G1_ACTION_GENERATORACTION_NAME_2           "::ascii" /* <generator action name> ::= <lua action name> */
#define G1_ACTION_GENERATORACTION_NAME_3           "::shift" /* <generator action name> ::= <lua function> */
#define G1_ACTION_GENERATORACTION                  "105_G1_action_generatoraction"                       /* done */
#define G1_ACTION_EVENTACTION_NAME_1               "::ascii" /* <event action name> ::= <ascii graph name> */
#define G1_ACTION_EVENTACTION_NAME_2               "::ascii" /* <event action name> ::= <lua identifier> */
#define G1_ACTION_EVENTACTION_NAME_3               "::shift" /* <event action name> ::= <lua function> */
#define G1_ACTION_EVENTACTION                      "106_G1_action_eventaction"                   /* done */
#define G1_ACTION_DEFAULTENCODING                  "107_G1_action_defaultencoding"                   /* done */
#define G1_ACTION_DEFAULTENCODING_NAME             "::ascii" /* <default encoding name> ::= <ascii graph name> */
#define G1_ACTION_FALLBACKENCODING                 "108_G1_action_fallbackencoding"                   /* done */
#define G1_ACTION_FALLBACKENCODING_NAME            "::ascii" /* <fallback encoding name> ::= <ascii graph name> */
#define G1_ACTION_LUA_FUNCTION                     "109_G1_action_lua_function" /* <lua function>> ::= '::lua->function(' <lua function after lparen>@+2 */
#define G1_ACTION_LUA_FUNCTIONCALL                 "110_G1_action_lua_functioncall" /* <lua functioncall>> ::= '->(' <lua args after lparen>@+2 */
#define G1_ACTION_LUA_FUNCTIONDECL                 "111_G1_action_lua_functiondecl" /* <lua functiondecl>> ::= '<-(' <lua args after lparen>@+2 */

typedef struct bootstrap_grammar_terminal {
  int                        idi;                 /* Identifier */
  marpaESLIF_terminal_type_t terminalType;        /* Terminal type */
  char                      *modifiers;           /* Modifiers */
  char                      *utf8s;               /* ASCII UTF-8 compatible encoding */
  char                      *eventBefores;
  char                      *eventAfters;
  char                      *testFullMatchs;
  char                      *testPartialMatchs;
} bootstrap_grammar_terminal_t;

typedef struct bootstrap_grammar_meta {
  int    idi;                  /* Identifier */
  char  *descs;                /* Description */
  short  startb;               /* Start symbol ? */
  short  discardb;             /* Discard symbol ? */
  short  discardonb;           /* :discard[on] event ? */
  short  discardoffb;          /* :discard[off] event ? */
  short  lazyb;                /* Lazy ? Only ESLIF is using that */
  int    lookupLevelDeltai;    /* When >= 0, this is a forced lookupLevelDeltai at symbol level */
  short  verboseb;             /* Forced verbose mode - only for lexemes */
  char  *eventBefores;         /* Event before - only for lexemes */
  char  *eventAfters;          /* Event after - only for lexemes */
} bootstrap_grammar_meta_t;

typedef enum bootstrap_grammar_rule_type {
  MARPAESLIF_RULE_TYPE_ALTERNATIVE,
  MARPAESLIF_RULE_TYPE_SEQUENCE
} bootstrap_grammar_rule_type_t;

typedef struct bootstrap_grammar_rule {
  int                           lhsi;
  char                         *descs;
  bootstrap_grammar_rule_type_t type;
  size_t                        nrhsl;
  int                           rhsip[10];  /* 10 is arbitrary - just to make C happy */
  int                           minimumi;
  int                           separatori;
  short                         properb;
  short                         hideseparatorb;
  char                         *actions;
} bootstrap_grammar_rule_t;

#include "marpaESLIF/internal/eslif/L0.h"
#include "marpaESLIF/internal/eslif/G1.h"

#endif /* MARPAESLIF_INTERNAL_ESLIF_H */
