/*
 * -*- tcl -*-
 * Parsing Expression Grammar 'TEMPLATE'.
 * Generated for unknown, from file 'TEST'
 */

/*
 * Declaring the parse functions
 */

<<attributes>> void <<ns>>notahead_3 (<<STATE>> <<state>>);
<<attributes>> void <<ns>>sequence_6 (<<STATE>> <<state>>);
<<attributes>> void <<ns>>sym_TEST (<<STATE>> <<state>>);

/*
 * Precomputed table of strings (symbols, error messages, etc.).
 */

static char const* <<string-table>> [3] = {
    /*        0 = */   "t a",
    /*        1 = */   "n TEST",
    /*        2 = */   "TEST"
};

/*
 * Grammar Start Expression
 */

<<attributes>> void <<ns>><<main>> (<<STATE>> <<state>>) { <<prelude>>
    <<self>> <<ns>>sym_TEST (<<state>>);
    return;
}

/*
 * value Symbol 'TEST'
 */

<<attributes>> void <<ns>>sym_TEST (<<STATE>> <<state>>) { <<prelude>>
   /*
    * x
    *     !
    *         'a'
    *     (IDENTIFIER)
    */

    if (rde_param_i_symbol_start (<<state>>, 2)) return ;
    <<self>> <<ns>>sequence_6 (<<state>>);
    rde_param_i_symbol_done_leaf (<<state>>, 2, 1);
    return;
}

<<attributes>> void <<ns>>sequence_6 (<<STATE>> <<state>>) { <<prelude>>
   /*
    * x
    *     !
    *         'a'
    *     (IDENTIFIER)
    */

    rde_param_i_state_push_void (<<state>>);
    <<self>> <<ns>>notahead_3 (<<state>>);
    if (rde_param_i_seq_void2void(<<state>>)) return;
    /* Undefined symbol 'IDENTIFIER' */;
    rde_param_i_status_fail (<<state>>);
    rde_param_i_state_merge_void (<<state>>);
    return;
}

<<attributes>> void <<ns>>notahead_3 (<<STATE>> <<state>>) { <<prelude>>
   /*
    * !
    *     'a'
    */

    rde_param_i_loc_push (<<state>>);
    rde_param_i_next_char (<<state>>, "a", 0);
    rde_param_i_notahead_exit (<<state>>);
    return;
}

/*
 */
