#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_START_RULE                       "G1_rule_start_rule"
#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_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_ACTION_1                         "G1_rule_action_1"
#define G1_RULE_ACTION_2                         "G1_rule_action_2"
#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_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_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                              "G1_rule_lhs"
#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_PRIMARY_1                    "G1_rule_rhs_primary_1"
#define G1_RULE_RHS_PRIMARY_2                    "G1_rule_rhs_primary_2"
#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_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_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_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_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_START_RULE                       "G1_action_start_rule"                       /* done */
#define G1_ACTION_DESC_RULE                        "G1_action_desc_rule"                        /* done */
#define G1_ACTION_EMPTY_RULE                       "G1_action_empty_rule"                       /* done */
#define G1_ACTION_NULL_STATEMENT                   "::undef"
#define G1_ACTION_STATEMENT_GROUP                  "::undef"
#define G1_ACTION_PRIORITY_RULE                    "G1_action_priority_rule"                    /* done */
#define G1_ACTION_QUANTIFIED_RULE                  "G1_action_quantified_rule"                  /* done */
#define G1_ACTION_DISCARD_RULE                     "G1_action_discard_rule"                     /* done */
#define G1_ACTION_DEFAULT_RULE                     "G1_action_default_rule"                     /* done */
#define G1_ACTION_LEXEME_RULE                      "G1_action_lexeme_rule"                      /* done */
#define G1_ACTION_TERMINAL_RULE                    "G1_action_terminal_rule"                    /* done */
#define G1_ACTION_COMPLETION_EVENT_DECLARATION_1   "G1_action_completion_event_declaration_1"   /* done */
#define G1_ACTION_COMPLETION_EVENT_DECLARATION_2   "G1_action_completion_event_declaration_2"   /* done */
#define G1_ACTION_NULLED_EVENT_DECLARATION_1       "G1_action_nulled_event_declaration_1"       /* done */
#define G1_ACTION_NULLED_EVENT_DECLARATION_2       "G1_action_nulled_event_declaration_2"       /* done */
#define G1_ACTION_PREDICTED_EVENT_DECLARATION_1    "G1_action_predicted_event_declaration_1"    /* done */
#define G1_ACTION_PREDICTED_EVENT_DECLARATION_2    "G1_action_predicted_event_declaration_2"    /* done */
#define G1_ACTION_INACCESSIBLE_STATEMENT           "G1_action_inaccessible_statement"           /* done */
#define G1_ACTION_INACCESSIBLE_TREATMENT_1         "G1_action_inaccessible_treatment_1"         /* done */
#define G1_ACTION_INACCESSIBLE_TREATMENT_2         "G1_action_inaccessible_treatment_2"         /* done */
#define G1_ACTION_INACCESSIBLE_TREATMENT_3         "G1_action_inaccessible_treatment_3"         /* done */
#define G1_ACTION_EXCEPTION_STATEMENT              "G1_action_exception_statement"
#define G1_ACTION_AUTORANK_STATEMENT               "G1_action_autorank_statement"               /* done */
#define G1_ACTION_OP_DECLARE_1                     "G1_action_op_declare_1"                     /* done */
#define G1_ACTION_OP_DECLARE_2                     "G1_action_op_declare_2"                     /* done */
#define G1_ACTION_OP_DECLARE_3                     "G1_action_op_declare_3"                     /* done */
#define G1_ACTION_PRIORITIES                       "G1_action_priorities"                       /* done */
#define G1_ACTION_ALTERNATIVES                     "G1_action_alternatives"                     /* done */
#define G1_ACTION_ALTERNATIVE                      "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                "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> ::= symbolaction */
#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_ACTION_1                         "G1_action_action_1"                         /* done */
#define G1_ACTION_ACTION_2                         "G1_action_action_2"                         /* done */
#define G1_ACTION_SYMBOLACTION_1                   "G1_action_symbolaction_1"                   /* done */
#define G1_ACTION_SYMBOLACTION_2                   "G1_action_symbolaction_2"                   /* done */
#define G1_ACTION_LEFT_ASSOCIATION                 "G1_action_left_association"                 /* done */
#define G1_ACTION_RIGHT_ASSOCIATION                "G1_action_right_association"                /* done */
#define G1_ACTION_GROUP_ASSOCIATION                "G1_action_group_association"                /* done */
#define G1_ACTION_SEPARATOR_SPECIFICATION          "G1_action_separator_specification"          /* done */
#define G1_ACTION_PROPER_SPECIFICATION_1           "G1_action_proper_specification_1"           /* done */
#define G1_ACTION_PROPER_SPECIFICATION_2           "G1_action_proper_specification_2"           /* done */
#define G1_ACTION_HIDESEPARATOR_SPECIFICATION_1    "G1_action_hideseparator_specification_1"    /* done */
#define G1_ACTION_HIDESEPARATOR_SPECIFICATION_2    "G1_action_hideseparator_specification_2"    /* done */
#define G1_ACTION_RANK_SPECIFICATION               "G1_action_rank_specification"               /* done */
#define G1_ACTION_NULL_RANKING_SPECIFICATION_1     "G1_action_null_ranking_specification_1"     /* done */
#define G1_ACTION_NULL_RANKING_SPECIFICATION_2     "G1_action_null_ranking_specification_2"     /* done */
#define G1_ACTION_NULL_RANKING_CONSTANT_1          "G1_action_null_ranking_constant_1"          /* done */
#define G1_ACTION_NULL_RANKING_CONSTANT_2          "G1_action_null_ranking_constant_2"          /* done */
#define G1_ACTION_PRIORITY_SPECIFICATION           "G1_action_priority_specification"           /* done */
#define G1_ACTION_PAUSE_SPECIFICATION_1            "G1_action_pause_specification_1"            /* done */
#define G1_ACTION_PAUSE_SPECIFICATION_2            "G1_action_pause_specification_2"            /* done */
#define G1_ACTION_EVENT_SPECIFICATION              "G1_action_event_specification"              /* done */
#define G1_ACTION_EVENT_INITIALIZATION             "G1_action_event_initialization"             /* done */
#define G1_ACTION_EVENT_INITIALIZER_1              "G1_action_event_initializer_1"              /* done */
#define G1_ACTION_ON_OR_OFF_1                      "G1_action_on_or_off_1"                      /* done */
#define G1_ACTION_ON_OR_OFF_2                      "G1_action_on_or_off_2"                      /* done */
#define G1_ACTION_EVENT_INITIALIZER_2              "G1_action_event_initializer_2"              /* done */
#define G1_ACTION_LATM_SPECIFICATION_1             "G1_action_latm_specification_1"             /* done */
#define G1_ACTION_LATM_SPECIFICATION_2             "G1_action_latm_specification_2"             /* done */
#define G1_ACTION_NAMING                           "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               "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                              "::shift" /* lhs ::= <symbol name> */
#define G1_ACTION_RHS                              "G1_action_rhs"                              /* done */
#define G1_ACTION_RHS_ALTERNATIVE_1                "G1_action_rhs_alternative_1"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_2                "G1_action_rhs_alternative_2"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_3                "G1_action_rhs_alternative_3"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_4                "G1_action_rhs_alternative_4"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_5                "G1_action_rhs_alternative_5"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_6                "G1_action_rhs_alternative_6"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_7                "G1_action_rhs_alternative_7"                /* done */
#define G1_ACTION_RHS_ALTERNATIVE_8                "G1_action_rhs_alternative_8"                /* done */
#define G1_ACTION_RHS_PRIMARY_1                    "G1_action_rhs_primary_1"                    /* done */
#define G1_ACTION_RHS_PRIMARY_2                    "G1_action_rhs_primary_2"                    /* done */
#define G1_ACTION_SINGLE_SYMBOL_1                  "G1_action_single_symbol_1"                  /* done */
#define G1_ACTION_SINGLE_SYMBOL_2                  "::shift"                                    /* done */
#define G1_ACTION_TERMINAL_1                       "G1_action_terminal_1"                       /* done */
#define G1_ACTION_TERMINAL_2                       "G1_action_terminal_2"                       /* done */
#define G1_ACTION_TERMINAL_3                       "G1_action_terminal_3"                       /* done */
#define G1_ACTION_SYMBOL                           "::shift" /* symbol ::= <symbol name> */
#define G1_ACTION_SYMBOL_NAME_1                    "G1_action_symbol_name_1" /* <symbol name> ::= <bare name> */
#define G1_ACTION_SYMBOL_NAME_2                    "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_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_QUANTIFIER_1                     "G1_action_quantifier_1"                     /* done */
#define G1_ACTION_QUANTIFIER_2                     "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              "G1_action_grammar_reference_1"              /* done */
#define G1_ACTION_GRAMMAR_REFERENCE_2              "G1_action_grammar_reference_2"              /* done */
#define G1_ACTION_GRAMMAR_REFERENCE_3              "G1_action_grammar_reference_3"              /* done */
#define G1_ACTION_STRING_LITERAL                   "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          "G1_action_string_literal_inside_2"          /* done */
#define G1_ACTION_STRING_LITERAL_INSIDE_3          "G1_action_string_literal_inside_3"          /* done */
#define G1_ACTION_STRING_LITERAL_INSIDE_4          "G1_action_string_literal_inside_4"          /* done */
#define G1_ACTION_STRING_LITERAL_INSIDE_5          "G1_action_string_literal_inside_5"          /* done */
#define G1_ACTION_DISCARD_ON                       "::undef"
#define G1_ACTION_DISCARD_OFF                      "::undef"
#define G1_ACTION_LUASCRIPT_STATEMENT              "G1_action_luascript_statement"
#define G1_ACTION_LUASCRIPT_SOURCE                 "::concat"

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                      *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 ? */
} 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 */