/*
**
** The C code is generated by ATS/Anairiats
** The compilation time is: 2020-11-6:  1h:10m
**
*/

/* include some .h files */
#ifndef _ATS_HEADER_NONE
#include "ats_config.h"
#include "ats_basics.h"
#include "ats_types.h"
#include "ats_exception.h"
#include "ats_memory.h"
#endif /* _ATS_HEADER_NONE */

/* include some .cats files */
#ifndef _ATS_PRELUDE_NONE
#include "prelude/CATS/basics.cats"
#include "prelude/CATS/bool.cats"
#include "prelude/CATS/char.cats"
#include "prelude/CATS/byte.cats"
#include "prelude/CATS/float.cats"
#include "prelude/CATS/integer.cats"
#include "prelude/CATS/integer_ptr.cats"
#include "prelude/CATS/integer_fixed.cats"
#include "prelude/CATS/sizetype.cats"
#include "prelude/CATS/pointer.cats"
#include "prelude/CATS/reference.cats"
#include "prelude/CATS/string.cats"
#include "prelude/CATS/lazy.cats"
#include "prelude/CATS/lazy_vt.cats"
#include "prelude/CATS/printf.cats"
#include "prelude/CATS/list.cats"
#include "prelude/CATS/option.cats"
#include "prelude/CATS/array.cats"
#include "prelude/CATS/matrix.cats"
#endif /* _ATS_PRELUDE_NONE */
/* prologues from statically loaded files */

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_tokbuf.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_tokbuf.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "pats_location.cats"
/* external codes at top */
/* type definitions */
typedef
struct {
ats_ptr_type atslab_3 ;
ats_ptr_type atslab_4 ;
} anairiats_rec_0 ;

typedef
struct {
ats_ptr_type atslab_token_loc ;
ats_ptr_type atslab_token_node ;
} anairiats_rec_1 ;

typedef struct {
ats_ptr_type atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_2 ;

typedef struct {
int tag ;
ats_ptr_type atslab_0 ;
} anairiats_sum_3 ;

/* external typedefs */
/* external dynamic constructor declarations */
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_cons_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__list_vt_nil_1) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__None_vt_0) ;
ATSextern_val(ats_sum_type, ATS_2d0_2e2_2e12_2prelude_2basics_sta_2esats__Some_vt_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IF_53) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_alp_143) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_INT_150) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_CHAR_151) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_FLOAT_152) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_STRING_154) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LPAREN_157) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_PERCENTLPAREN_172) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atme0xp_61) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lte_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_isucc) (ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_iadd) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_isub) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_idiv) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_ilt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igt) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_igte) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_size1_of_int1) (ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_add_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_neq_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ptr_alloc_tsz) (ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_ptr_zero_tsz) (ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_ref_make_elt_tsz) (ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, ListSubscriptException_make) () ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_alloc_tsz) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_free) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_funenv_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_initialize_cloenv_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_split_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atspre_array_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(anairiats_rec_0, atspre_array_ptr_takeout2_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_foreach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_array_ptr_iforeach_funenv_tsz) (ats_ref_type, ats_ptr_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atspre_array2_ptr_takeout_tsz) (ats_ptr_type, ats_size_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_qsort) (ats_ref_type, ats_size_type, ats_size_type, ats_ptr_type) ;
ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok) (ats_ref_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null) () ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0nt) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_c0har) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_f0loat) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_s0tring) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0de) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_list) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_app) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_eval) (ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_if) (ats_ptr_type, ats_ptr_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_make_stringid) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__datsdef_make) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null) (ats_ref_type, ats_uint_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_THEN) (ats_ref_type, ats_int_type, ats_ref_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ELSE) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN) (ats_ref_type, ats_int_type, ats_ref_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQ) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun) (ats_ref_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA) (ats_ref_type, ats_int_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_bool_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun) (ats_ref_type, ats_ptr_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun) (ats_ref_type, ats_int_type, ats_ref_type, ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de) (ats_ref_type, ats_int_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp) (ats_ref_type, ats_int_type, ats_ref_type) ;

/* external dynamic terminating constant declarations */
#ifdef _ATS_PROOFCHECK
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
#endif /* _ATS_PROOFCHECK */

/* assuming abstract types */
/* sum constructor declarations */
/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
/* internal function declarations */
static
ats_ptr_type p_e0xpseq_vt_0 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ;
static
ats_ptr_type p_atme0xp_2 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ;
static
ats_void_type loop_5 (ats_ptr_type arg0) ;
static
ats_void_type list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type p_atme0xp_tok_3 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) ;
static
ats_ptr_type loop_7 (ats_ptr_type arg0, ats_ptr_type arg1) ;
static
ats_ptr_type p_e0xp0_6 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ;
static
ats_void_type option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) ;
static
ats_ptr_type p_datsval_10 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) ;

/* partial value template declarations */
/* static temporary variable declarations */
/* external value variable declarations */

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 1760(line=61, offs=1) -- 1879(line=68, offs=2)
*/
ATSstaticdec()
ats_ptr_type
p_e0xpseq_vt_0 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp0) ;

__ats_lab_p_e0xpseq_vt_0:
tmp0 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar_fun0_COMMA (arg0, arg1, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp) ;
return (tmp0) ;
} /* end of [p_e0xpseq_vt_0] */

/*
// /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 1945(line=74, offs=3) -- 1992(line=74, offs=50)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xpseq (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp1) ;
ATSlocal (ats_ptr_type, tmp2) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xpseq:
tmp2 = p_e0xpseq_vt_0 (arg0, arg1, arg2) ;
tmp1 = ats_castfn_mac(ats_ptr_type, tmp2) ;
return (tmp1) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xpseq] */

/*
// /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 2196(line=91, offs=1) -- 2318(line=97, offs=2)
*/
ATSstaticdec()
ats_ptr_type
p_atme0xp_2 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp3) ;
ATSlocal (ats_ptr_type, tmp4) ;

__ats_lab_p_atme0xp_2:
tmp4 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__PE_atme0xp_61) ;
tmp3 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokwrap_fun (arg0, arg1, arg2, &p_atme0xp_tok_3, tmp4) ;
return (tmp3) ;
} /* end of [p_atme0xp_2] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4893(line=177, offs=7) -- 5015(line=178, offs=73)
*/
ATSstaticdec()
ats_void_type
loop_5 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp21) ;
ATSlocal (ats_ptr_type, tmp22) ;

__ats_lab_loop_5:
do {
/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_7_0 ; }
__ats_lab_6_1:
tmp22 = ats_caselptrlab_mac(anairiats_sum_2, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp22 ;
goto __ats_lab_loop_5 ; // tail call
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_7_1:
break ;
} while (0) ;
return /* (tmp21) */ ;
} /* end of [loop_5] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/list_vt.dats: 4875(line=176, offs=14) -- 5054(line=182, offs=4)
*/
ATSstaticdec()
ats_void_type
list_vt_free_01499_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp20) ;

__ats_lab_list_vt_free_01499_ats_ptr_type:
/* tmp20 = */ loop_5 (arg0) ;
return /* (tmp20) */ ;
} /* end of [list_vt_free_01499_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 2342(line=100, offs=1) -- 3658(line=163, offs=4)
*/
ATSstaticdec()
ats_ptr_type
p_atme0xp_tok_3 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2, ats_ptr_type arg3) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp5) ;
ATSlocal (ats_int_type, tmp6) ;
ATSlocal (ats_ptr_type, tmp7) ;
ATSlocal (ats_ptr_type, tmp8) ;
ATSlocal (ats_ptr_type, tmp9) ;
ATSlocal (ats_bool_type, tmp10) ;
// ATSlocal_void (tmp11) ;
// ATSlocal_void (tmp12) ;
// ATSlocal_void (tmp13) ;
// ATSlocal_void (tmp14) ;
// ATSlocal_void (tmp15) ;
ATSlocal (ats_ptr_type, tmp16) ;
ATSlocal (ats_ptr_type, tmp17) ;
ATSlocal (ats_bool_type, tmp18) ;
// ATSlocal_void (tmp19) ;
// ATSlocal_void (tmp23) ;
ATSlocal (ats_ptr_type, tmp24) ;
ATSlocal (ats_ptr_type, tmp25) ;
ATSlocal (ats_bool_type, tmp26) ;
ATSlocal (ats_int_type, tmp27) ;

__ats_lab_p_atme0xp_tok_3:
tmp6 = ats_ptrget_mac(ats_int_type, arg2) ;
/* ats_ptr_type tmp7 ; */
tmp8 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_loc) ;
tmp9 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, arg3), atslab_token_node) ;
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
__ats_lab_0_1:
tmp10 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de, (&tmp7)) ;
if (!tmp10) { goto __ats_lab_1_0 ; }
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0de (ats_castfn_mac(ats_ptr_type, tmp7)) ;
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
if (((ats_sum_ptr_type)tmp9)->tag != 150) { goto __ats_lab_2_0 ; }
__ats_lab_1_1:
/* tmp11 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ;
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0nt (arg3) ;
break ;

/* branch: __ats_lab_2 */
__ats_lab_2_0:
if (((ats_sum_ptr_type)tmp9)->tag != 151) { goto __ats_lab_3_0 ; }
__ats_lab_2_1:
/* tmp12 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ;
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_c0har (arg3) ;
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
if (((ats_sum_ptr_type)tmp9)->tag != 152) { goto __ats_lab_4_0 ; }
__ats_lab_3_1:
/* tmp13 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ;
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_f0loat (arg3) ;
break ;

/* branch: __ats_lab_4 */
__ats_lab_4_0:
if (((ats_sum_ptr_type)tmp9)->tag != 154) { goto __ats_lab_5_0 ; }
__ats_lab_4_1:
/* tmp14 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ;
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_s0tring (arg3) ;
break ;

/* branch: __ats_lab_5 */
__ats_lab_5_0:
if (((ats_sum_ptr_type)tmp9)->tag != 157) { goto __ats_lab_8_0 ; }
__ats_lab_5_1:
/* tmp15 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ;
tmp16 = p_e0xpseq_vt_0 (arg0, 0, arg2) ;
tmp17 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN (arg0, 0, arg2) ;
tmp18 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp6) ;
if (tmp18) {
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_list (arg3, ats_castfn_mac(ats_ptr_type, tmp16), tmp17) ;
} else {
/* tmp19 = */ list_vt_free_01499_ats_ptr_type (tmp16) ;
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ;
} /* end of [if] */
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (((ats_sum_ptr_type)tmp9)->tag != 172) { goto __ats_lab_9_0 ; }
__ats_lab_8_1:
/* tmp23 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ;
tmp24 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp (arg0, 0, arg2) ;
tmp25 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, 0, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_RPAREN, tmp6) ;
tmp26 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp6) ;
if (tmp26) {
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_eval (arg3, tmp24, tmp25) ;
} else {
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ;
} /* end of [if] */
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
__ats_lab_9_1:
tmp27 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp27 ;
tmp5 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ;
break ;
} while (0) ;
return (tmp5) ;
} /* end of [p_atme0xp_tok_3] */

/*
// /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 3812(line=177, offs=1) -- 4025(line=186, offs=2)
*/
ATSstaticdec()
ats_ptr_type
loop_7 (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp29) ;
ATSlocal (ats_ptr_type, tmp30) ;
ATSlocal (ats_ptr_type, tmp31) ;
ATSlocal (ats_ptr_type, tmp32) ;

__ats_lab_loop_7:
do {
/* branch: __ats_lab_10 */
__ats_lab_10_0:
if (arg1 != (ats_sum_ptr_type)0) { goto __ats_lab_11_0 ; }
__ats_lab_10_1:
tmp29 = arg0 ;
break ;

/* branch: __ats_lab_11 */
__ats_lab_11_0:
// if (arg1 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_11_1:
tmp30 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_0) ;
tmp31 = ats_caselptrlab_mac(anairiats_sum_2, arg1, atslab_1) ;
ATS_FREE(arg1) ;
tmp32 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_app (arg0, tmp30) ;
arg0 = tmp32 ;
arg1 = tmp31 ;
goto __ats_lab_loop_7 ; // tail call
break ;
} while (0) ;
return (tmp29) ;
} /* end of [loop_7] */

/*
// /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 3745(line=172, offs=1) -- 4198(line=196, offs=4)
*/
ATSstaticdec()
ats_ptr_type
p_e0xp0_6 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp28) ;
ATSlocal (ats_ptr_type, tmp33) ;
ATSlocal (ats_ptr_type, tmp34) ;
ATSlocal (ats_ptr_type, tmp35) ;

__ats_lab_p_e0xp0_6:
tmp33 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pstar1_fun (arg0, arg1, arg2, &p_atme0xp_2) ;
do {
/* branch: __ats_lab_12 */
__ats_lab_12_0:
if (tmp33 != (ats_sum_ptr_type)0) { goto __ats_lab_13_0 ; }
__ats_lab_12_1:
tmp28 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ;
break ;

/* branch: __ats_lab_13 */
__ats_lab_13_0:
// if (tmp33 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_13_1:
tmp34 = ats_caselptrlab_mac(anairiats_sum_2, tmp33, atslab_0) ;
tmp35 = ats_caselptrlab_mac(anairiats_sum_2, tmp33, atslab_1) ;
ATS_FREE(tmp33) ;
tmp28 = loop_7 (tmp34, tmp35) ;
break ;
} while (0) ;
return (tmp28) ;
} /* end of [p_e0xp0_6] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/option_vt.dats: 2556(line=86, offs=16) -- 2611(line=87, offs=49)
*/
ATSstaticdec()
ats_void_type
option_vt_free_01544_ats_ptr_type (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp53) ;

__ats_lab_option_vt_free_01544_ats_ptr_type:
do {
/* branch: __ats_lab_16 */
__ats_lab_16_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_17_0 ; }
__ats_lab_16_1:
ATS_FREE(arg0) ;
break ;

/* branch: __ats_lab_17 */
__ats_lab_17_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_17_1:
break ;
} while (0) ;
return /* (tmp53) */ ;
} /* end of [option_vt_free_01544_ats_ptr_type] */

/*
// /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 4325(line=205, offs=7) -- 5350(line=249, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp36) ;
ATSlocal (ats_int_type, tmp37) ;
ATSlocal (ats_uint_type, tmp38) ;
ATSlocal (ats_ptr_type, tmp39) ;
ATSlocal (ats_ptr_type, tmp40) ;
ATSlocal (ats_ptr_type, tmp41) ;
ATSlocal (ats_bool_type, tmp42) ;
ATSlocal (ats_ptr_type, tmp43) ;
ATSlocal (ats_ptr_type, tmp44) ;
ATSlocal (ats_bool_type, tmp45) ;
// ATSlocal_void (tmp46) ;
ATSlocal (ats_ptr_type, tmp47) ;
ATSlocal (ats_ptr_type, tmp48) ;
ATSlocal (ats_ptr_type, tmp49) ;
ATSlocal (ats_ptr_type, tmp50) ;
ATSlocal (ats_bool_type, tmp51) ;
// ATSlocal_void (tmp52) ;
ATSlocal (ats_int_type, tmp54) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp:
tmp37 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp38 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ;
tmp39 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ;
/* ats_ptr_type tmp40 ; */
tmp41 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp39), atslab_token_node) ;
do {
/* branch: __ats_lab_14 */
__ats_lab_14_0:
__ats_lab_14_1:
tmp42 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptest_fun (arg0, &p_e0xp0_6, (&tmp40)) ;
if (!tmp42) { goto __ats_lab_15_0 ; }
tmp43 = ats_castfn_mac(ats_ptr_type, tmp40) ;
tmp44 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp (arg0, 0, arg2) ;
tmp45 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp37) ;
if (tmp45) {
tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_app (tmp43, tmp44) ;
} else {
ats_ptrget_mac(ats_int_type, arg2) = tmp37 ;
tmp36 = tmp43 ;
} /* end of [if] */
break ;

/* branch: __ats_lab_15 */
__ats_lab_15_0:
if (((ats_sum_ptr_type)tmp41)->tag != 53) { goto __ats_lab_18_0 ; }
__ats_lab_15_1:
/* tmp46 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ;
tmp47 = p_e0xp0_6 (arg0, arg1, arg2) ;
tmp48 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_THEN, tmp37) ;
tmp49 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__pif_fun (arg0, arg1, arg2, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp, tmp37) ;
tmp50 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_ELSE, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp) ;
tmp51 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp37) ;
if (tmp51) {
tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_if (tmp39, tmp47, tmp49, ats_castfn_mac(ats_ptr_type, tmp50)) ;
} else {
/* tmp52 = */ option_vt_free_01544_ats_ptr_type (tmp50) ;
tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp38) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_18 */
__ats_lab_18_0:
__ats_lab_18_1:
tmp54 = atspre_add_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp54 ;
tmp36 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__synent_null () ;
break ;
} while (0) ;
return (tmp36) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_e0xp] */

/*
// /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 5490(line=259, offs=1) -- 6217(line=300, offs=4)
*/
ATSstaticdec()
ats_ptr_type
p_datsval_10 (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp55) ;
ATSlocal (ats_uint_type, tmp56) ;
ATSlocal (ats_ptr_type, tmp57) ;
ATSlocal (ats_ptr_type, tmp58) ;
ATSlocal (ats_ptr_type, tmp59) ;
ATSlocal (ats_ptr_type, tmp60) ;
// ATSlocal_void (tmp61) ;
// ATSlocal_void (tmp62) ;
// ATSlocal_void (tmp63) ;
// ATSlocal_void (tmp64) ;
ATSlocal (ats_ptr_type, tmp65) ;
// ATSlocal_void (tmp66) ;

__ats_lab_p_datsval_10:
tmp56 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ;
tmp57 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_token (arg0) ;
/* ats_ptr_type tmp58 ; */
tmp59 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp57), atslab_token_loc) ;
tmp60 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_1, tmp57), atslab_token_node) ;
do {
/* branch: __ats_lab_19 */
__ats_lab_19_0:
if (((ats_sum_ptr_type)tmp60)->tag != 150) { goto __ats_lab_20_0 ; }
__ats_lab_19_1:
/* tmp61 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ;
tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_i0nt (tmp57) ;
break ;

/* branch: __ats_lab_20 */
__ats_lab_20_0:
if (((ats_sum_ptr_type)tmp60)->tag != 151) { goto __ats_lab_21_0 ; }
__ats_lab_20_1:
/* tmp62 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ;
tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_c0har (tmp57) ;
break ;

/* branch: __ats_lab_21 */
__ats_lab_21_0:
if (((ats_sum_ptr_type)tmp60)->tag != 152) { goto __ats_lab_22_0 ; }
__ats_lab_21_1:
/* tmp63 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ;
tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_f0loat (tmp57) ;
break ;

/* branch: __ats_lab_22 */
__ats_lab_22_0:
if (((ats_sum_ptr_type)tmp60)->tag != 154) { goto __ats_lab_23_0 ; }
__ats_lab_22_1:
/* tmp64 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ;
tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_s0tring (tmp57) ;
break ;

/* branch: __ats_lab_23 */
__ats_lab_23_0:
if (((ats_sum_ptr_type)tmp60)->tag != 143) { goto __ats_lab_24_0 ; }
__ats_lab_23_1:
tmp65 = ats_caselptrlab_mac(anairiats_sum_3, tmp60, atslab_0) ;
/* tmp66 = */ _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_incby1 (arg0) ;
tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_make_stringid (tmp59, tmp65) ;
break ;

/* branch: __ats_lab_24 */
__ats_lab_24_0:
__ats_lab_24_1:
tmp55 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__e0xp_make_stringid (tmp59, ATSstrcst("")) ;
break ;
} while (0) ;
return (tmp55) ;
} /* end of [p_datsval_10] */

/*
// /tmp/ATS-Postiats/src/pats_parsing_e0xp.dats: 6362(line=311, offs=3) -- 6769(line=335, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_datsdef (ats_ref_type arg0, ats_int_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp67) ;
ATSlocal (ats_int_type, tmp68) ;
ATSlocal (ats_uint_type, tmp69) ;
ATSlocal (ats_ptr_type, tmp70) ;
ATSlocal (ats_ptr_type, tmp71) ;
ATSlocal (ats_bool_type, tmp72) ;
ATSlocal (ats_bool_type, tmp73) ;
// ATSlocal_void (tmp74) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_datsdef:
tmp68 = ats_ptrget_mac(ats_int_type, arg2) ;
tmp69 = _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__tokbuf_get_ntok (arg0) ;
tmp70 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_i0de (arg0, arg1, arg2) ;
tmp72 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp68) ;
if (tmp72) {
tmp71 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__ptokentopt_fun (arg0, &_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__is_EQ, &p_datsval_10) ;
} else {
tmp71 = (ats_sum_ptr_type)0 ;
} /* end of [if] */
tmp73 = atspre_eq_int_int (ats_ptrget_mac(ats_int_type, arg2), tmp68) ;
if (tmp73) {
tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__datsdef_make (tmp70, ats_castfn_mac(ats_ptr_type, tmp71)) ;
} else {
/* tmp74 = */ option_vt_free_01544_ats_ptr_type (tmp71) ;
tmp67 = _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__tokbuf_set_ntok_null (arg0, tmp69) ;
} /* end of [if] */
return (tmp67) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__p_datsdef] */

/* static load function */

// extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__staload_flag = 1 ;

// _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_tokbuf_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_syntax_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_parsing_2esats__staload () ;

return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_parsing_e0xp_2edats__staload () ;

#ifdef _ATS_PROOFCHECK
ATS_2d0_2e2_2e12_2prelude_2SATS_2list_2esats__list_length_is_nonnegative_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2SATS_2list_vt_2esats__list_vt_length_is_nonnegative_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2SATS_2array_2esats__array_v_takeout2_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2list_vt_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____copy_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____free_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2prelude_2DATS_2array_2edats____assert_prfck () ;
#endif /* _ATS_PROOFCHECK */

/* marking static variables for GC */

/* marking external values for GC */

/* code for dynamic loading */
return ;
} /* end of [dynload function] */

/* external codes at mid */
/* external codes at bot */

/* ****** ****** */

/* end of [pats_parsing_e0xp_dats.c] */
