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

/* 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_location.cats"

#include "pats_lexbuf.cats"

#include "pats_location.cats"

#include "libc/CATS/string.cats"

#include "libc/CATS/errno.cats"

#include "libats/CATS/linqueue_arr.cats"

#include "libats/ngc/CATS/deque_arr.cats"

#include "libats/CATS/linqueue_arr.cats"

#include "libats/ngc/CATS/deque_arr.cats"
/* external codes at top */

typedef ats_ptr_type string ;
typedef ats_ptr_type lexsym ;

/* type definitions */
typedef
struct {
ats_ptr_type atslab_3 ;
ats_ptr_type atslab_4 ;
} anairiats_rec_0 ;

typedef
struct {
string atslab_0 ;
lexsym atslab_1 ;
} anairiats_rec_1 ;

typedef
struct {
ats_size_type atslab_sz ;
ats_size_type atslab_tot ;
ats_ptr_type atslab_pbeg ;
ats_clo_ref_type atslab_hash ;
ats_clo_ref_type atslab_eqfn ;
} anairiats_rec_2 ;

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

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

typedef struct {
pats_position_struct atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_5 ;

typedef struct {
int tag ;
ats_int_type atslab_0 ;
ats_ptr_type atslab_1 ;
} anairiats_sum_6 ;

typedef struct {
int tag ;
ats_int_type atslab_0 ;
} anairiats_sum_7 ;

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

typedef struct {
int tag ;
ats_int_type atslab_0 ;
ats_ptr_type atslab_1 ;
ats_uint_type atslab_2 ;
} anairiats_sum_9 ;

/* 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, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_NONE_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BACKSLASH_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COLONLT_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_DOTINT_12) ;
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_IDENT_sym_144) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_arr_145) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_tmp_146) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_dlr_147) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_srp_148) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_IDENT_ext_149) ;
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_COMMA_155) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SEMICOLON_156) ;
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_RPAREN_158) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LBRACKET_159) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_RBRACKET_160) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LBRACE_161) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_RBRACE_162) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ATLPAREN_163) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELPAREN_164) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ATLBRACKET_165) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELBRACKET_166) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_HASHLBRACKET_167) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ATLBRACE_168) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELBRACE_169) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BQUOTELPAREN_170) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMALPAREN_171) ;
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_lexing_2esats__T_EXTCODE_173) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMENT_line_174) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMENT_rest_175) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMENT_block_176) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ERR_177) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EOF_178) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_oct_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_hex_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_unclose_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_QUOTE_dangling_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_unclose_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_char_oct_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_char_hex_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_COMMENT_block_unclose_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_EXTCODE_unclose_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_DIGIT_oct_89_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_IDIGITS_empty_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FEXPONENT_empty_11) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FEXPONENT_missing_12) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FINTFRAC_missing_13) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_UNSUPPORTED_char_14) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_NONE_0) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VAL_1) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_CASE_2) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ADDR_3) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FOLD_4) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FREE_5) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FIX_6) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_LAM_7) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_LLAM_8) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_T_9) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VT_10) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_PROP_11) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEW_12) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TYPE_13) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TBOX_14) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TFLT_15) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TYPES_16) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VTYPE_17) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VTBOX_18) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VTFLT_19) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_T0YPE_20) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VT0YPE_21) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEWT_22) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEWTYPE_23) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEWT0YPE_24) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ABST_25) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ABSVT_26) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ABSVIEWT_27) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FOR_28) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_WHILE_29) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_QMARKGT_30) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_SLASH2_31) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_SLASHSTAR_32) ;
ATSextern_val(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_SLASH4_33) ;

/* external dynamic constant declarations */
ATSextern_fun(ats_void_type, atspre_vbox_make_view_ptr) (ats_ptr_type) ;
ATSextern_fun(ats_char_type, atspre_char_of_int) (ats_int_type) ;
ATSextern_fun(ats_uchar_type, atspre_uchar_of_int) (ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_sub_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_lte_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_char_isdigit) (ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_char_isspace) (ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_char_isxdigit) (ats_char_type) ;
ATSextern_fun(ats_int_type, atspre_sub_char_char) (ats_char_type, ats_char_type) ;
ATSextern_fun(ats_double_type, atspre_double_of_size) (ats_size_type) ;
ATSextern_fun(ats_double_type, atspre_mul_int_double) (ats_int_type, ats_double_type) ;
ATSextern_fun(ats_bool_type, atspre_gte_double_double) (ats_double_type, ats_double_type) ;
ATSextern_fun(ats_int_type, atspre_int_of_char) (ats_char_type) ;
ATSextern_fun(ats_int_type, atspre_add_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_sub_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_mul_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_lt_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_gt_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_gte_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_bool_type, atspre_neq_int_int) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_uint_type, atspre_succ_uint) (ats_uint_type) ;
ATSextern_fun(ats_uint_type, atspre_pred_uint) (ats_uint_type) ;
ATSextern_fun(ats_uint_type, atspre_add_uint_uint) (ats_uint_type, ats_uint_type) ;
ATSextern_fun(ats_uint_type, atspre_sub_uint_uint) (ats_uint_type, ats_uint_type) ;
ATSextern_fun(ats_bool_type, atspre_gt_uint_uint) (ats_uint_type, ats_uint_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_uint_uint) (ats_uint_type, ats_uint_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_bool_type, atspre_ieq) (ats_int_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_size_of_int1) (ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_add_size_int) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_sub_size_int) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_int_type, atspre_int1_of_size1) (ats_size_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_add_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_sub_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_size_type, atspre_sub_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_mul_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_mul2_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_size_type, atspre_mod1_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_gt_size1_size1) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_size1_int1) (ats_size_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_eq_size1_size1) (ats_size_type, ats_size_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_int_type, atspre_compare_string_string) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_char_type, atspre_string_get_char_at) (ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_char_type, atspre_string_get_char_at__intsz) (ats_ptr_type, ats_int_type) ;
ATSextern_fun(ats_bool_type, atspre_string_contains) (ats_ptr_type, ats_char_type) ;
ATSextern_fun(ats_bool_type, atspre_string_isnot_atend) (ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_ulint_type, atspre_string_hash_33) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atspre_strptr_free) (ats_ptr_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_size_type, ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_size) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_linqueue_arr_queue_uninitialize) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__queue_get_strptr1) (ats_ref_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_ncol) (ats_ref_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_copy) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char) (ats_ref_type, ats_int_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_decby_count) (ats_ref_type, ats_uint_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count) (ats_ref_type, ats_uint_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_make_pos_pos) (pats_position_struct, pats_position_struct) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_position) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_position) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_nspace) (ats_ref_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_nspace) (ats_ref_type, ats_int_type) ;
ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_diff) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_char) (ats_ref_type, ats_uint_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1) (ats_ref_type, ats_uint_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr1) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_substrptr1) (ats_ref_type, ats_uint_type, ats_uint_type) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABST0YPE) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWT0YPE) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ADDR) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ADDRAT) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE_pos) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE_neg) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOLD) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOLDAT) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FIX) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FIXAT) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOR) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FORSTAR) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FREE) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FREEAT) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LAM) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LAMAT) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LLAM) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LLAMAT) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TBOX) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TFLT) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTYPE) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTBOX) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTFLT) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE_pos) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE_neg) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE_pos) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE_neg) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP_pos) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP_neg) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWAT) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW_pos) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW_neg) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE_pos) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE_neg) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE_pos) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE_neg) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL_pos) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL_neg) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WHILE) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WHILESTAR) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DOT) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__QMARK) ;
ATSextern_val(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INTZERO) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__token_make) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_search) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make) (ats_ptr_type, ats_ptr_type) ;
ATSextern_fun(ats_void_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token_ncmnt) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_hashtbl_free__linprb) (ats_ptr_type) ;
ATSextern_fun(ats_void_type, atslib_hashtbl_ptr_clear__linprb) (ats_ptr_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atslib_hashtbl_ptr_make__linprb) (ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_hashtbl_ptr_free__linprb) (ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, atslib_hashtbl_make_hint_tsz__linprb) (ats_clo_ref_type, ats_clo_ref_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_opt) (ats_ref_type, ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_uint_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq0) (ats_ref_type, ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq1) (ats_ref_type, ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_litchar) (ats_ref_type, ats_ref_type, ats_char_type) ;
ATSextern_fun(ats_int_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal) (ats_ref_type, ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_deciexp) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_hexiexp) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_dec) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_oct) (ats_ref_type, ats_ref_type, ats_uint_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_hex) (ats_ref_type, ats_ref_type, ats_uint_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_alp) (ats_ref_type, ats_ref_type, ats_uint_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT2_alp) (ats_ref_type, ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym) (ats_ref_type, ats_ref_type, ats_uint_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_dlr) (ats_ref_type, ats_ref_type, ats_uint_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_srp) (ats_ref_type, ats_ref_type, ats_uint_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_line) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_c) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_ml) (ats_ref_type, ats_ref_type, ats_ptr_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_rest) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_EXTCODE) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_EXTCODE_knd) (ats_ref_type, ats_ref_type, ats_int_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_LPAREN) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMA) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_AT) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COLON) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DOT) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_PERCENT) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DOLLAR) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_SHARP) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_BQUOTE) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_QUOTE) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DQUOTE) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_oct) (ats_ref_type, ats_ref_type, ats_uint_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_hex) (ats_ref_type, ats_ref_type, ats_uint_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_special) (ats_ref_type, ats_ref_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_closing) (ats_ref_type, ats_ref_type, ats_char_type) ;
ATSextern_fun(ats_size_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_cap) (ats_ref_type) ;
ATSextern_fun(ats_size_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_size) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_empty) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_empty) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_is_full) (ats_ref_type) ;
ATSextern_fun(ats_bool_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_isnot_full) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_initialize_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_uninitialize) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_uninitialize_vt) (ats_ref_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_takeout_tsz) (ats_ref_type, ats_size_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_insert_end_many_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_remove_beg_many_tsz) (ats_ref_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_void_type, ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__deque_clear_all) (ats_ref_type) ;
ATSextern_fun(ats_void_type, atslib_ngc_deque_arr_deque_copyout_tsz) (ats_ref_type, ats_size_type, ats_size_type, ats_ref_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, atslib_ngc_deque_arr_deque_update_capacity_tsz) (ats_ref_type, ats_size_type, ats_ptr_type, ats_size_type) ;
ATSextern_fun(ats_ptr_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_ZERO) (ats_ref_type, ats_ref_type) ;

/* external dynamic terminating constant declarations */
#ifdef _ATS_PROOFCHECK
extern
ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2extern_2esats__minus_addback_prfck () ;
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 () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__lemma_queue_param_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__Opt_none_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__Opt_some_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__Opt_encode_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__hashtbl_v_split_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__hashtbl_v_unsplit_prfck () ;
extern
ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats____assert_prfck () ;
extern
ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats____assert1_prfck () ;
extern
ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats____assert2_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__lemma_deque_param_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_encode_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_decode_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_clear_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_insert_beg_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_insert_end_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_remove_beg_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_remove_end_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
extern
ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
#endif /* _ATS_PROOFCHECK */

/* assuming abstract types */
/* sum constructor declarations */
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_NONE_0) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VAL_1) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_CASE_2) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ADDR_3) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FOLD_4) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FREE_5) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FIX_6) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_LAM_7) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_LLAM_8) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_T_9) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VT_10) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_PROP_11) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEW_12) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TYPE_13) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TBOX_14) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TFLT_15) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TYPES_16) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VTYPE_17) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VTBOX_18) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VTFLT_19) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_T0YPE_20) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VT0YPE_21) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEWT_22) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEWTYPE_23) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEWT0YPE_24) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ABST_25) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ABSVT_26) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ABSVIEWT_27) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FOR_28) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_WHILE_29) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_QMARKGT_30) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_SLASH2_31) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_SLASHSTAR_32) ;
ATSglobal(ats_sum_type, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_SLASH4_33) ;

/* exn constructor declarations */
/* global dynamic (non-functional) constant declarations */
/* internal function declarations */
static
ats_int_type xdigit_get_val_0 (ats_char_type arg0) ;
static
ats_char_type char_for_escaped_1 (ats_char_type arg0) ;
static
ats_void_type keyitem_nullify_02281_anairiats_rec_1 (ats_ref_type arg0) ;
static
ats_bool_type keyitem_isnot_null_02282_anairiats_rec_1 (ats_ref_type arg0) ;
static
ats_ulint_type hash_key_02276_string (string arg0, ats_clo_ref_type arg1) ;
static
ats_bool_type equal_key_key_02277_string (string arg0, string arg1, ats_clo_ref_type arg2) ;
static
ats_ptr_type atslib_hashtbl_make_hint__linprb_string_2clexsym (ats_clo_ref_type arg0, ats_clo_ref_type arg1, ats_size_type arg2) ;
static
ats_ptr_type hashtbl_ptr_split_02089_string_2clexsym (ats_ptr_type arg0, ats_size_type arg1) ;
static
ats_void_type loop_11 (string env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_size_type arg1, ats_ref_type arg2, ats_ref_type arg3) ;
static
ats_clo_ptr_type loop_11_closure_make (string env0, ats_clo_ref_type env1) ;
static
ats_void_type loop_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_size_type arg1, ats_ref_type arg2, ats_ref_type arg3) ;
static
ats_ptr_type hashtbl_ptr_probe_ofs_02097_string_2clexsym (ats_ptr_type arg0, string arg1, ats_clo_ref_type arg2, ats_size_type arg3, ats_size_type arg4, ats_ref_type arg5) ;
static
ats_void_type hashtbl_ptr_relocate_02146_string_2clexsym (ats_size_type arg0, ats_size_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_clo_ref_type arg4, ats_clo_ref_type arg5) ;
static
ats_void_type hashtbl_resize_02167_string_2clexsym (ats_ptr_type arg0, ats_size_type arg1) ;
static
ats_bool_type hashtbl_insert_02288_string_2clexsym (ats_ptr_type arg0, string arg1, lexsym arg2, ats_ref_type arg3) ;
static
ats_void_type insert_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) ;
static
ats_bool_type hashtbl_search_02287_string_2clexsym (ats_ptr_type arg0, string arg1, ats_ref_type arg2) ;
static
ats_ptr_type IDENT_alp_get_lexsym_14 (ats_ptr_type arg0) ;
static
ats_ptr_type IDENT_sym_get_lexsym_16 (ats_ptr_type arg0) ;
static
ats_bool_type BLANK_test_17 (ats_char_type arg0) ;
static
ats_bool_type IDENTFST_test_18 (ats_char_type arg0) ;
static
ats_bool_type IDENTRST_test_19 (ats_char_type arg0) ;
static
ats_bool_type SYMBOLIC_test_20 (ats_char_type arg0) ;
static
ats_bool_type xX_test_21 (ats_char_type arg0) ;
static
ats_bool_type DIGIT_test_22 (ats_char_type arg0) ;
static
ats_bool_type XDIGIT_test_23 (ats_char_type arg0) ;
static
ats_bool_type INTSP_test_24 (ats_char_type arg0) ;
static
ats_bool_type FLOATSP_test_25 (ats_char_type arg0) ;
static
ats_bool_type eE_test_26 (ats_char_type arg0) ;
static
ats_bool_type pP_test_27 (ats_char_type arg0) ;
static
ats_bool_type SIGN_test_28 (ats_char_type arg0) ;
static
ats_bool_type ESCHAR_test_29 (ats_char_type arg0) ;
static
ats_uint_type loop_32 (ats_ref_type arg0, ats_uint_type arg1, ats_ptr_type arg2) ;
static
ats_uint_type loop_35 (ats_ref_type arg0, ats_ref_type arg1, ats_uint_type arg2) ;
static
ats_uint_type testing_blankseq0_34 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_int_type loop_38 (ats_ref_type arg0, ats_uint_type arg1, ats_ptr_type arg2, ats_size_type arg3) ;
static
ats_uint_type testing_identrstseq0_39 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_uint_type testing_symbolicseq0_40 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_bool_type f3_42 (ats_ref_type arg0, ats_uint_type arg1, ats_char_type arg2) ;
static
ats_uint_type loop_43 (ats_ref_type arg0, ats_uint_type arg1) ;
static
ats_uint_type testing_octalseq0_41 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_uint_type testing_digitseq0_44 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_uint_type testing_xdigitseq0_45 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_uint_type testing_intspseq0_46 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_uint_type testing_floatspseq0_47 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_int_type testing_fexponent_48 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_int_type testing_fexponent_bin_49 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_int_type testing_deciexp_50 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_int_type testing_hexiexp_51 (ats_ref_type arg0, ats_ref_type arg1, ats_uint_type arg2) ;
static
ats_ptr_type lexbufpos_token_reset_53 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type lexbufpos_lexerr_reset_54 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2) ;
static
ats_ptr_type feof_57 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_void_type loop_61 (ats_ptr_type arg0) ;
static
ats_void_type list_vt_free_01499_pats_position_struct (ats_ptr_type arg0) ;
static
ats_ptr_type feof_59 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2) ;
static
ats_uint_type extcode_nskip_63 (ats_int_type arg0) ;
static
ats_bool_type FLOATDOT_test_70 (ats_ref_type arg0, ats_char_type arg1) ;
static
ats_int_type loop_72 (ats_ptr_type arg0, ats_size_type arg1, ats_int_type arg2) ;
static
ats_int_type string2int_71 (ats_ptr_type arg0) ;
static
ats_int_type loop_79 (ats_ref_type arg0, ats_uint_type arg1, ats_uint_type arg2, ats_int_type arg3) ;
static
ats_int_type loop_81 (ats_ref_type arg0, ats_uint_type arg1, ats_uint_type arg2, ats_int_type arg3) ;
static
ats_int_type loop_86 (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_int_type arg3) ;
static
ats_int_type lexing_string_char_oct_85 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_int_type loop_88 (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_int_type arg3) ;
static
ats_int_type lexing_string_char_hex_87 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_int_type lexing_string_char_special_89 (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2) ;
static
ats_void_type regerr_91 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_size_type loop_92 (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_size_type arg3, ats_size_type arg4) ;
static
ats_ptr_type DEQUEptrnxt_02425_ats_uchar_type (ats_ref_type arg0, ats_ptr_type arg1) ;
static
ats_void_type deque_insert_end_02406_ats_uchar_type (ats_ref_type arg0, ats_uchar_type arg1) ;
static
ats_void_type queue_insert_01913_ats_uchar_type (ats_ref_type arg0, ats_uchar_type arg1) ;
static
ats_ptr_type array_ptr_alloc_01563_ats_uchar_type (ats_size_type arg0) ;
static
ats_ptr_type deque_update_capacity_02418_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2) ;
static
ats_void_type queue_update_capacity_01920_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1) ;
static
ats_size_type loop_ins_93 (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_size_type arg3, ats_size_type arg4, ats_int_type arg5) ;
static
ats_size_type loop_92_0loop_ins_93 (ats_int_type arg0, ...) ;
static
ats_void_type deque_initialize_02398_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2) ;
static
ats_void_type queue_initialize_01907_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1) ;
static
ats_ptr_type lexing_postfix_103 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_char_type arg4) ;
static
ats_ptr_type lexing_polarity_104 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) ;
static
ats_ptr_type lexing_FOR_105 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_WHILE_106 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_CASE_107 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_VAL_108 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_TYPE_109 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_TBOX_110 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_TFLT_111 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_T0YPE_112 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_PROP_113 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_VIEW_114 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_VTYPE_115 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_VTBOX_116 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_VTFLT_117 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_VIEWTYPE_118 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_VIEWT0YPE_119 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_LAM_120 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_LLAM_121 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_FIX_122 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_ADDR_123 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_FOLD_124 (ats_ref_type arg0, ats_ref_type arg1) ;
static
ats_ptr_type lexing_FREE_125 (ats_ref_type arg0, ats_ref_type arg1) ;

/* partial value template declarations */
/* static temporary variable declarations */
ATSstatic (ats_ptr_type, statmp14) ;
// ATSstatic_void (statmp83) ;
ATSstatic (ats_ptr_type, statmp84) ;
// ATSstatic_void (statmp85) ;
ATSstatic (ats_ptr_type, statmp86) ;
// ATSstatic_void (statmp87) ;
ATSstatic (ats_ptr_type, statmp88) ;
// ATSstatic_void (statmp89) ;
ATSstatic (ats_ptr_type, statmp90) ;
// ATSstatic_void (statmp91) ;
ATSstatic (ats_ptr_type, statmp92) ;
// ATSstatic_void (statmp93) ;
ATSstatic (ats_ptr_type, statmp94) ;
// ATSstatic_void (statmp95) ;
ATSstatic (ats_ptr_type, statmp96) ;
// ATSstatic_void (statmp97) ;
ATSstatic (ats_ptr_type, statmp98) ;
// ATSstatic_void (statmp99) ;
ATSstatic (ats_ptr_type, statmp100) ;
// ATSstatic_void (statmp101) ;
ATSstatic (ats_ptr_type, statmp102) ;
// ATSstatic_void (statmp103) ;
ATSstatic (ats_ptr_type, statmp104) ;
// ATSstatic_void (statmp105) ;
ATSstatic (ats_ptr_type, statmp106) ;
// ATSstatic_void (statmp107) ;
ATSstatic (ats_ptr_type, statmp108) ;
// ATSstatic_void (statmp109) ;
ATSstatic (ats_ptr_type, statmp110) ;
// ATSstatic_void (statmp111) ;
ATSstatic (ats_ptr_type, statmp112) ;
// ATSstatic_void (statmp113) ;
ATSstatic (ats_ptr_type, statmp114) ;
// ATSstatic_void (statmp115) ;
ATSstatic (ats_ptr_type, statmp116) ;
// ATSstatic_void (statmp117) ;
ATSstatic (ats_ptr_type, statmp118) ;
// ATSstatic_void (statmp119) ;
ATSstatic (ats_ptr_type, statmp120) ;
// ATSstatic_void (statmp121) ;
ATSstatic (ats_ptr_type, statmp122) ;
// ATSstatic_void (statmp123) ;
ATSstatic (ats_ptr_type, statmp124) ;
// ATSstatic_void (statmp125) ;
ATSstatic (ats_ptr_type, statmp126) ;
// ATSstatic_void (statmp127) ;
ATSstatic (ats_ptr_type, statmp128) ;
// ATSstatic_void (statmp129) ;
ATSstatic (ats_ptr_type, statmp130) ;
// ATSstatic_void (statmp131) ;
ATSstatic (ats_ptr_type, statmp132) ;
// ATSstatic_void (statmp133) ;
ATSstatic (ats_ptr_type, statmp134) ;
// ATSstatic_void (statmp135) ;
ATSstatic (ats_ptr_type, statmp136) ;
// ATSstatic_void (statmp137) ;
ATSstatic (ats_ptr_type, statmp138) ;
// ATSstatic_void (statmp139) ;
ATSstatic (ats_ptr_type, statmp140) ;

/* external value variable declarations */

/* function implementations */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 2483(line=94, offs=1) -- 2723(line=103, offs=2)
*/
ATSstaticdec()
ats_int_type
xdigit_get_val_0 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp0) ;
ATSlocal (ats_bool_type, tmp1) ;
ATSlocal (ats_bool_type, tmp2) ;
ATSlocal (ats_int_type, tmp3) ;
ATSlocal (ats_bool_type, tmp4) ;
ATSlocal (ats_int_type, tmp5) ;

__ats_lab_xdigit_get_val_0:
do {
/* branch: __ats_lab_0 */
__ats_lab_0_0:
__ats_lab_0_1:
tmp1 = atspre_lte_char_char (arg0, '9') ;
if (!tmp1) { goto __ats_lab_1_1 ; }
tmp0 = atspre_sub_char_char (arg0, '0') ;
break ;

/* branch: __ats_lab_1 */
__ats_lab_1_0:
__ats_lab_1_1:
tmp2 = atspre_lte_char_char (arg0, 'F') ;
if (!tmp2) { goto __ats_lab_2_1 ; }
tmp3 = atspre_sub_char_char (arg0, 'A') ;
tmp0 = atspre_add_int_int (10, tmp3) ;
break ;

/* branch: __ats_lab_2 */
__ats_lab_2_0:
__ats_lab_2_1:
tmp4 = atspre_lte_char_char (arg0, 'f') ;
if (!tmp4) { goto __ats_lab_3_1 ; }
tmp5 = atspre_sub_char_char (arg0, 'a') ;
tmp0 = atspre_add_int_int (10, tmp5) ;
break ;

/* branch: __ats_lab_3 */
__ats_lab_3_0:
__ats_lab_3_1:
tmp0 = 0 ;
break ;
} while (0) ;
return (tmp0) ;
} /* end of [xdigit_get_val_0] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 2780(line=108, offs=1) -- 3108(line=120, offs=2)
*/
ATSstaticdec()
ats_char_type
char_for_escaped_1 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_char_type, tmp6) ;

__ats_lab_char_for_escaped_1:
do {
/* branch: __ats_lab_4 */
__ats_lab_4_0:
if (arg0 != 'n') { goto __ats_lab_5_0 ; }
__ats_lab_4_1:
tmp6 = '\n' ;
break ;

/* branch: __ats_lab_5 */
__ats_lab_5_0:
if (arg0 != 't') { goto __ats_lab_6_0 ; }
__ats_lab_5_1:
tmp6 = '\t' ;
break ;

/* branch: __ats_lab_6 */
__ats_lab_6_0:
if (arg0 != 'a') { goto __ats_lab_7_0 ; }
__ats_lab_6_1:
tmp6 = '\007' ;
break ;

/* branch: __ats_lab_7 */
__ats_lab_7_0:
if (arg0 != 'b') { goto __ats_lab_8_0 ; }
__ats_lab_7_1:
tmp6 = '\010' ;
break ;

/* branch: __ats_lab_8 */
__ats_lab_8_0:
if (arg0 != 'v') { goto __ats_lab_9_0 ; }
__ats_lab_8_1:
tmp6 = '\013' ;
break ;

/* branch: __ats_lab_9 */
__ats_lab_9_0:
if (arg0 != 'f') { goto __ats_lab_10_0 ; }
__ats_lab_9_1:
tmp6 = '\014' ;
break ;

/* branch: __ats_lab_10 */
__ats_lab_10_0:
if (arg0 != 'r') { goto __ats_lab_11_0 ; }
__ats_lab_10_1:
tmp6 = '\015' ;
break ;

/* branch: __ats_lab_11 */
__ats_lab_11_0:
__ats_lab_11_1:
tmp6 = arg0 ;
break ;
} while (0) ;
return (tmp6) ;
} /* end of [char_for_escaped_1] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 5775(line=235, offs=3) -- 5938(line=240, offs=2)
*/
ATSstaticdec()
ats_void_type
keyitem_nullify_02281_anairiats_rec_1 (ats_ref_type arg0) {
/* local vardec */
// ATSlocal_void (tmp7) ;

__ats_lab_keyitem_nullify_02281_anairiats_rec_1:
ats_select_mac(ats_ptrget_mac(anairiats_rec_1, arg0), atslab_0) = ats_castfn_mac(string, atspre_null_ptr) ;
return /* (tmp7) */ ;
} /* end of [keyitem_nullify_02281_anairiats_rec_1] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 6012(line=244, offs=3) -- 6280(line=251, offs=2)
*/
ATSstaticdec()
ats_bool_type
keyitem_isnot_null_02282_anairiats_rec_1 (ats_ref_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp8) ;
ATSlocal (ats_bool_type, tmp9) ;
ATSlocal (string, tmp10) ;

__ats_lab_keyitem_isnot_null_02282_anairiats_rec_1:
tmp10 = ats_select_mac(ats_ptrget_mac(anairiats_rec_1, arg0), atslab_0) ;
tmp9 = atspre_pneq (ats_castfn_mac(ats_ptr_type, tmp10), atspre_null_ptr) ;
tmp8 = ats_castfn_mac(ats_bool_type, tmp9) ;
return (tmp8) ;
} /* end of [keyitem_isnot_null_02282_anairiats_rec_1] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 6342(line=254, offs=15) -- 6375(line=254, offs=48)
*/
ATSstaticdec()
ats_ulint_type
hash_key_02276_string (string arg0, ats_clo_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ulint_type, tmp11) ;

__ats_lab_hash_key_02276_string:
tmp11 = atspre_string_hash_33 (ats_castfn_mac(ats_ptr_type, arg0)) ;
return (tmp11) ;
} /* end of [hash_key_02276_string] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 6409(line=257, offs=3) -- 6459(line=257, offs=53)
*/
ATSstaticdec()
ats_bool_type
equal_key_key_02277_string (string arg0, string arg1, ats_clo_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp12) ;
ATSlocal (ats_int_type, tmp13) ;

__ats_lab_equal_key_key_02277_string:
tmp13 = atspre_compare_string_string (ats_castfn_mac(ats_ptr_type, arg0), ats_castfn_mac(ats_ptr_type, arg1)) ;
tmp12 = atspre_ieq (tmp13, 0) ;
return (tmp12) ;
} /* end of [equal_key_key_02277_string] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_linprb.dats: 19885(line=623, offs=3) -- 20024(line=626, offs=4)
*/
ATSstaticdec()
ats_ptr_type
atslib_hashtbl_make_hint__linprb_string_2clexsym (ats_clo_ref_type arg0, ats_clo_ref_type arg1, ats_size_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp15) ;

__ats_lab_atslib_hashtbl_make_hint__linprb_string_2clexsym:
tmp15 = atslib_hashtbl_make_hint_tsz__linprb (arg0, arg1, arg2, sizeof(anairiats_rec_1)) ;
return (tmp15) ;
} /* end of [atslib_hashtbl_make_hint__linprb_string_2clexsym] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_linprb.dats: 5439(line=171, offs=47) -- 5885(line=184, offs=4)
*/
ATSstaticdec()
ats_ptr_type
hashtbl_ptr_split_02089_string_2clexsym (ats_ptr_type arg0, ats_size_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp30) ;
ATSlocal (ats_size_type, tmp31) ;
ATSlocal (ats_size_type, tmp32) ;

__ats_lab_hashtbl_ptr_split_02089_string_2clexsym:
tmp31 = atspre_mul2_size1_size1 (arg1, sizeof(anairiats_rec_1)) ;
tmp32 = ats_selsin_mac(tmp31, atslab_1) ;
tmp30 = atspre_padd_size (arg0, tmp32) ;
return (tmp30) ;
} /* end of [hashtbl_ptr_split_02089_string_2clexsym] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_linprb.dats: 6608(line=211, offs=7) -- 7396(line=234, offs=8)
*/
ATSstaticdec()
ats_void_type
loop_11 (string env0, ats_clo_ref_type env1, ats_ptr_type arg0, ats_size_type arg1, ats_ref_type arg2, ats_ref_type arg3) {
/* local vardec */
// ATSlocal_void (tmp34) ;
ATSlocal (ats_bool_type, tmp35) ;
ATSlocal (ats_bool_type, tmp36) ;
ATSlocal (string, tmp37) ;
ATSlocal (ats_bool_type, tmp38) ;
ATSlocal (ats_ptr_type, tmp39) ;
ATSlocal (ats_size_type, tmp40) ;

__ats_lab_loop_11:
tmp35 = atspre_gt_size1_int1 (arg1, 0) ;
if (tmp35) {
tmp36 = keyitem_isnot_null_02282_anairiats_rec_1 (arg0) ;
if (tmp36) {
tmp37 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, arg0), atslab_0) ;
tmp38 = equal_key_key_02277_string (env0, tmp37, env1) ;
if (tmp38) {
ats_ptrget_mac(ats_ptr_type, arg2) = arg0 ;
ats_ptrget_mac(ats_bool_type, arg3) = ats_true_bool ;
} else {
tmp39 = atspre_padd_size (arg0, sizeof(anairiats_rec_1)) ;
tmp40 = atspre_sub_size1_int1 (arg1, 1) ;
arg0 = tmp39 ;
arg1 = tmp40 ;
arg2 = arg2 ;
arg3 = arg3 ;
goto __ats_lab_loop_11 ; // tail call
} /* end of [if] */
} else {
ats_ptrget_mac(ats_ptr_type, arg2) = arg0 ;
} /* end of [if] */
} else {
/* empty */
} /* end of [if] */
return /* (tmp34) */ ;
} /* end of [loop_11] */

typedef struct {
ats_fun_ptr_type closure_fun ;
string closure_env_0 ;
ats_clo_ref_type closure_env_1 ;
} loop_11_closure_type ;

ats_void_type
loop_11_clofun (ats_clo_ptr_type cloptr, ats_ptr_type arg0, ats_size_type arg1, ats_ref_type arg2, ats_ref_type arg3) {
loop_11 (((loop_11_closure_type*)cloptr)->closure_env_0, ((loop_11_closure_type*)cloptr)->closure_env_1, arg0, arg1, arg2, arg3) ; return ;
} /* end of function */

ATSinline()
ats_void_type
loop_11_closure_init (loop_11_closure_type *p_clo, string env0, ats_clo_ref_type env1) {
p_clo->closure_fun = (ats_fun_ptr_type)&loop_11_clofun ;
p_clo->closure_env_0 = env0 ;
p_clo->closure_env_1 = env1 ;
return ;
} /* end of function */

ats_clo_ptr_type
loop_11_closure_make (string env0, ats_clo_ref_type env1) {
loop_11_closure_type *p_clo = ATS_MALLOC(sizeof(loop_11_closure_type)) ;
loop_11_closure_init (p_clo, env0, env1) ;
return (ats_clo_ptr_type)p_clo ;
} /* end of function */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_linprb.dats: 6222(line=201, offs=22) -- 7691(line=244, offs=4)
*/
ATSstaticdec()
ats_ptr_type
hashtbl_ptr_probe_ofs_02097_string_2clexsym (ats_ptr_type arg0, string arg1, ats_clo_ref_type arg2, ats_size_type arg3, ats_size_type arg4, ats_ref_type arg5) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp28) ;
ATSlocal (ats_ptr_type, tmp29) ;
ATSlocal (ats_ptr_type, tmp33) ;
ATSlocal (ats_ptr_type, tmp41) ;
// ATSlocal_void (tmp42) ;
ATSlocal (ats_size_type, tmp43) ;
// ATSlocal_void (tmp44) ;
ATSlocal (ats_bool_type, tmp45) ;

__ats_lab_hashtbl_ptr_probe_ofs_02097_string_2clexsym:
tmp29 = hashtbl_ptr_split_02089_string_2clexsym (arg0, arg4) ;
tmp33 = ats_selsin_mac(tmp29, atslab_2) ;
/* ats_ptr_type tmp41 ; */
tmp41 = atspre_null_ptr ;
ats_ptrget_mac(ats_bool_type, arg5) = ats_false_bool ;
tmp43 = atspre_sub_size1_size1 (arg3, arg4) ;
/* tmp42 = */ loop_11 (arg1, arg2, tmp33, tmp43, (&tmp41), arg5) ;
tmp45 = atspre_peq (tmp41, atspre_null_ptr) ;
if (tmp45) {
/* tmp44 = */ loop_11 (arg1, arg2, arg0, arg4, (&tmp41), arg5) ;
} else {
/* empty */
} /* end of [if] */
tmp28 = tmp41 ;
return (tmp28) ;
} /* end of [hashtbl_ptr_probe_ofs_02097_string_2clexsym] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_linprb.dats: 9389(line=302, offs=38) -- 10782(line=340, offs=4)
*/
ATSstaticdec()
ats_void_type
hashtbl_ptr_relocate_02146_string_2clexsym (ats_size_type arg0, ats_size_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_clo_ref_type arg4, ats_clo_ref_type arg5) {
/* local vardec */
// ATSlocal_void (tmp64) ;
ATSlocal (ats_bool_type, tmp65) ;
ATSlocal (ats_bool_type, tmp66) ;
ATSlocal (string, tmp68) ;
ATSlocal (lexsym, tmp69) ;
ATSlocal (ats_ulint_type, tmp70) ;
ATSlocal (ats_size_type, tmp71) ;
ATSlocal (ats_bool_type, tmp72) ;
ATSlocal (ats_ptr_type, tmp73) ;
ATSlocal (ats_size_type, tmp74) ;
ATSlocal (ats_ptr_type, tmp75) ;

__ats_lab_hashtbl_ptr_relocate_02146_string_2clexsym:
tmp65 = atspre_gt_size1_int1 (arg0, 0) ;
if (tmp65) {
tmp66 = keyitem_isnot_null_02282_anairiats_rec_1 (arg2) ;
if (tmp66) {
tmp68 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_0) ;
tmp69 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, arg2), atslab_1) ;
tmp70 = hash_key_02276_string (tmp68, arg4) ;
tmp71 = atspre_mod1_size1_size1 (ats_castfn_mac(ats_size_type, tmp70), arg1) ;
/* ats_bool_type tmp72 ; */
tmp73 = hashtbl_ptr_probe_ofs_02097_string_2clexsym (arg3, tmp68, arg5, arg1, tmp71, (&tmp72)) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp73), atslab_0) = tmp68 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp73), atslab_1) = tmp69 ;
} else {
/* empty */
} /* end of [if] */
tmp74 = atspre_sub_size1_int1 (arg0, 1) ;
tmp75 = atspre_padd_size (arg2, sizeof(anairiats_rec_1)) ;
arg0 = tmp74 ;
arg1 = arg1 ;
arg2 = tmp75 ;
arg3 = arg3 ;
arg4 = arg4 ;
arg5 = arg5 ;
goto __ats_lab_hashtbl_ptr_relocate_02146_string_2clexsym ; // tail call
} else {
/* empty */
} /* end of [if] */
return /* (tmp64) */ ;
} /* end of [hashtbl_ptr_relocate_02146_string_2clexsym] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_linprb.dats: 10895(line=345, offs=37) -- 11621(line=364, offs=2)
*/
ATSstaticdec()
ats_void_type
hashtbl_resize_02167_string_2clexsym (ats_ptr_type arg0, ats_size_type arg1) {
/* local vardec */
// ATSlocal_void (tmp59) ;
ATSlocal (ats_ptr_type, tmp60) ;
ATSlocal (ats_ptr_type, tmp61) ;
ATSlocal (ats_ptr_type, tmp62) ;
// ATSlocal_void (tmp63) ;
ATSlocal (ats_size_type, tmp76) ;
ATSlocal (ats_ptr_type, tmp77) ;
ATSlocal (ats_clo_ref_type, tmp78) ;
ATSlocal (ats_clo_ref_type, tmp79) ;
// ATSlocal_void (tmp80) ;
ATSlocal (ats_ptr_type, tmp81) ;

__ats_lab_hashtbl_resize_02167_string_2clexsym:
tmp60 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ;
tmp61 = atslib_hashtbl_ptr_make__linprb (arg1, sizeof(anairiats_rec_1)) ;
tmp62 = ats_selsin_mac(tmp61, atslab_2) ;
tmp76 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp60), atslab_sz) ;
tmp77 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp60), atslab_pbeg) ;
tmp78 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp60), atslab_hash) ;
tmp79 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp60), atslab_eqfn) ;
/* tmp63 = */ hashtbl_ptr_relocate_02146_string_2clexsym (tmp76, arg1, tmp77, tmp62, tmp78, tmp79) ;
tmp81 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp60), atslab_pbeg) ;
/* tmp80 = */ atslib_hashtbl_ptr_free__linprb (tmp81) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp60), atslab_sz) = arg1 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp60), atslab_pbeg) = tmp62 ;
return /* (tmp59) */ ;
} /* end of [hashtbl_resize_02167_string_2clexsym] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_linprb.dats: 14588(line=454, offs=3) -- 15998(line=498, offs=2)
*/
ATSstaticdec()
ats_bool_type
hashtbl_insert_02288_string_2clexsym (ats_ptr_type arg0, string arg1, lexsym arg2, ats_ref_type arg3) {
/* local vardec */
ATSlocal (ats_bool_type, tmp19) ;
ATSlocal (ats_ptr_type, tmp20) ;
ATSlocal (ats_ulint_type, tmp21) ;
ATSlocal (ats_clo_ref_type, tmp22) ;
ATSlocal (ats_size_type, tmp23) ;
ATSlocal (ats_size_type, tmp24) ;
ATSlocal (ats_bool_type, tmp25) ;
ATSlocal (ats_int_type, tmp26) ;
ATSlocal (ats_ptr_type, tmp27) ;
ATSlocal (ats_ptr_type, tmp46) ;
ATSlocal (ats_clo_ref_type, tmp47) ;
ATSlocal (ats_bool_type, tmp48) ;
ATSlocal (lexsym, tmp50) ;
ATSlocal (ats_size_type, tmp51) ;
ATSlocal (ats_size_type, tmp52) ;
ATSlocal (ats_bool_type, tmp53) ;
ATSlocal (ats_double_type, tmp54) ;
ATSlocal (ats_double_type, tmp55) ;
ATSlocal (ats_double_type, tmp56) ;
// ATSlocal_void (tmp57) ;
ATSlocal (ats_bool_type, tmp58) ;
ATSlocal (ats_size_type, tmp82) ;

__ats_lab_hashtbl_insert_02288_string_2clexsym:
tmp20 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ;
tmp22 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp20), atslab_hash) ;
tmp21 = hash_key_02276_string (arg1, tmp22) ;
tmp23 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp20), atslab_sz) ;
tmp24 = atspre_mod1_size1_size1 (ats_castfn_mac(ats_size_type, tmp21), tmp23) ;
/* ats_bool_type tmp25 ; */
/* ats_int_type tmp26 ; */
tmp26 = 0 ;
tmp46 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp20), atslab_pbeg) ;
tmp47 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp20), atslab_eqfn) ;
tmp27 = hashtbl_ptr_probe_ofs_02097_string_2clexsym (tmp46, arg1, tmp47, tmp23, tmp24, (&tmp25)) ;
tmp48 = ats_castfn_mac(ats_bool_type, tmp25) ;
if (tmp48) {
tmp50 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp27), atslab_1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp27), atslab_1) = arg2 ;
ats_ptrget_mac(lexsym, arg3) = tmp50 ;
} else {
tmp51 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp20), atslab_tot) ;
tmp52 = atspre_add_size_int (tmp51, 1) ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp20), atslab_tot) = tmp52 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp27), atslab_0) = arg1 ;
ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp27), atslab_1) = arg2 ;
tmp55 = atspre_double_of_size (tmp51) ;
tmp54 = atspre_mul_int_double (2, tmp55) ;
tmp56 = atspre_double_of_size (tmp23) ;
tmp53 = atspre_gte_double_double (tmp54, tmp56) ;
if (tmp53) {
tmp26 = 1 ;
} else {
/* empty */
} /* end of [if] */
} /* end of [if] */
tmp58 = atspre_gt_int_int (tmp26, 0) ;
if (tmp58) {
tmp82 = atspre_add_size1_size1 (tmp23, tmp23) ;
/* tmp57 = */ hashtbl_resize_02167_string_2clexsym (arg0, tmp82) ;
} else {
/* empty */
} /* end of [if] */
tmp19 = tmp48 ;
return (tmp19) ;
} /* end of [hashtbl_insert_02288_string_2clexsym] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 6647(line=264, offs=5) -- 6878(line=272, offs=2)
*/
ATSstaticdec()
ats_void_type
insert_7 (ats_ptr_type arg0, ats_ptr_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp16) ;
ATSlocal (lexsym, tmp17) ;
ATSlocal (ats_bool_type, tmp18) ;

__ats_lab_insert_7:
/* lexsym tmp17 ; */
tmp18 = hashtbl_insert_02288_string_2clexsym (arg0, ats_castfn_mac(string, arg1), ats_castfn_mac(lexsym, arg2), (&tmp17)) ;
return /* (tmp16) */ ;
} /* end of [insert_7] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/hashtable_linprb.dats: 8459(line=270, offs=16) -- 9173(line=291, offs=4)
*/
ATSstaticdec()
ats_bool_type
hashtbl_search_02287_string_2clexsym (ats_ptr_type arg0, string arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp145) ;
ATSlocal (ats_ptr_type, tmp146) ;
ATSlocal (ats_ulint_type, tmp147) ;
ATSlocal (ats_clo_ref_type, tmp148) ;
ATSlocal (ats_size_type, tmp149) ;
ATSlocal (ats_size_type, tmp150) ;
ATSlocal (ats_bool_type, tmp151) ;
ATSlocal (ats_ptr_type, tmp152) ;
ATSlocal (ats_ptr_type, tmp153) ;
ATSlocal (ats_clo_ref_type, tmp154) ;
ATSlocal (ats_size_type, tmp155) ;
ATSlocal (lexsym, tmp156) ;

__ats_lab_hashtbl_search_02287_string_2clexsym:
tmp146 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, arg0), atslab_2) ;
tmp148 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp146), atslab_hash) ;
tmp147 = hash_key_02276_string (arg1, tmp148) ;
tmp150 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp146), atslab_sz) ;
tmp149 = atspre_mod1_size1_size1 (ats_castfn_mac(ats_size_type, tmp147), tmp150) ;
/* ats_bool_type tmp151 ; */
tmp153 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp146), atslab_pbeg) ;
tmp154 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp146), atslab_eqfn) ;
tmp155 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_2, tmp146), atslab_sz) ;
tmp152 = hashtbl_ptr_probe_ofs_02097_string_2clexsym (tmp153, arg1, tmp154, tmp155, tmp149, (&tmp151)) ;
if (tmp151) {
tmp156 = ats_selptr_mac(ats_castptr_mac(anairiats_rec_1, tmp152), atslab_1) ;
ats_ptrget_mac(lexsym, arg2) = tmp156 ;
tmp145 = ats_true_bool ;
} else {
tmp145 = ats_false_bool ;
} /* end of [if] */
return (tmp145) ;
} /* end of [hashtbl_search_02287_string_2clexsym] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 8310(line=325, offs=1) -- 8677(line=339, offs=4)
*/
ATSstaticdec()
ats_ptr_type
IDENT_alp_get_lexsym_14 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp141) ;
ATSlocal (ats_ptr_type, tmp142) ;
ATSlocal (lexsym, tmp143) ;
ATSlocal (ats_bool_type, tmp144) ;

__ats_lab_IDENT_alp_get_lexsym_14:
tmp142 = ats_selsin_mac(ats_castfn_mac(ats_ptr_type, ats_castfn_mac(ats_ptr_type, statmp14)), atslab_1) ;
/* lexsym tmp143 ; */
tmp144 = hashtbl_search_02287_string_2clexsym (tmp142, ats_castfn_mac(string, arg0), (&tmp143)) ;
if (tmp144) {
tmp141 = ats_castfn_mac(ats_ptr_type, tmp143) ;
} else {
tmp141 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_NONE_0) ;
} /* end of [if] */
return (tmp141) ;
} /* end of [IDENT_alp_get_lexsym_14] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 9024(line=360, offs=1) -- 10002(line=415, offs=4)
*/
ATSstaticdec()
ats_ptr_type
IDENT_sym_get_lexsym_16 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp157) ;
ATSlocal (ats_bool_type, tmp158) ;
ATSlocal (ats_char_type, tmp159) ;
ATSlocal (ats_bool_type, tmp160) ;
ATSlocal (ats_char_type, tmp161) ;
ATSlocal (ats_bool_type, tmp162) ;
ATSlocal (ats_char_type, tmp163) ;
ATSlocal (ats_bool_type, tmp164) ;
ATSlocal (ats_int_type, tmp165) ;

__ats_lab_IDENT_sym_get_lexsym_16:
tmp158 = atspre_string_isnot_atend (ats_castfn_mac(ats_ptr_type, arg0), 0) ;
if (tmp158) {
tmp159 = atspre_string_get_char_at__intsz (ats_castfn_mac(ats_ptr_type, arg0), 0) ;
do {
/* branch: __ats_lab_12 */
__ats_lab_12_0:
if (tmp159 != '?') { goto __ats_lab_15_0 ; }
__ats_lab_12_1:
tmp160 = atspre_string_isnot_atend (ats_castfn_mac(ats_ptr_type, arg0), 1) ;
if (tmp160) {
tmp161 = atspre_string_get_char_at__intsz (ats_castfn_mac(ats_ptr_type, arg0), 1) ;
do {
/* branch: __ats_lab_13 */
__ats_lab_13_0:
if (tmp161 != '>') { goto __ats_lab_14_0 ; }
__ats_lab_13_1:
tmp157 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_QMARKGT_30) ;
break ;

/* branch: __ats_lab_14 */
__ats_lab_14_0:
__ats_lab_14_1:
tmp157 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_NONE_0) ;
break ;
} while (0) ;
} else {
tmp157 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_NONE_0) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_15 */
__ats_lab_15_0:
if (tmp159 != '/') { goto __ats_lab_19_0 ; }
__ats_lab_15_1:
tmp162 = atspre_string_isnot_atend (ats_castfn_mac(ats_ptr_type, arg0), 1) ;
if (tmp162) {
tmp163 = atspre_string_get_char_at__intsz (ats_castfn_mac(ats_ptr_type, arg0), 1) ;
do {
/* branch: __ats_lab_16 */
__ats_lab_16_0:
if (tmp163 != '*') { goto __ats_lab_17_0 ; }
__ats_lab_16_1:
tmp157 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_SLASHSTAR_32) ;
break ;

/* branch: __ats_lab_17 */
__ats_lab_17_0:
if (tmp163 != '/') { goto __ats_lab_18_0 ; }
__ats_lab_17_1:
tmp165 = atslib_substrcmp (ats_castfn_mac(ats_ptr_type, arg0), 2, ATSstrcst("//"), 0) ;
tmp164 = atspre_eq_int_int (tmp165, 0) ;
if (tmp164) {
tmp157 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_SLASH4_33) ;
} else {
tmp157 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_SLASH2_31) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_18 */
__ats_lab_18_0:
__ats_lab_18_1:
tmp157 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_NONE_0) ;
break ;
} while (0) ;
} else {
tmp157 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_NONE_0) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_19 */
__ats_lab_19_0:
__ats_lab_19_1:
tmp157 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_NONE_0) ;
break ;
} while (0) ;
} else {
tmp157 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_NONE_0) ;
} /* end of [if] */
return (tmp157) ;
} /* end of [IDENT_sym_get_lexsym_16] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 10087(line=422, offs=1) -- 10132(line=422, offs=46)
*/
ATSstaticdec()
ats_bool_type
BLANK_test_17 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp166) ;

__ats_lab_BLANK_test_17:
tmp166 = atspre_char_isspace (arg0) ;
return (tmp166) ;
} /* end of [BLANK_test_17] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 10161(line=427, offs=1) -- 10364(line=435, offs=2)
*/
ATSstaticdec()
ats_bool_type
IDENTFST_test_18 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp167) ;
ATSlocal (ats_bool_type, tmp168) ;
ATSlocal (ats_bool_type, tmp169) ;
ATSlocal (ats_bool_type, tmp170) ;
ATSlocal (ats_bool_type, tmp171) ;
ATSlocal (ats_bool_type, tmp172) ;

__ats_lab_IDENTFST_test_18:
do {
/* branch: __ats_lab_20 */
__ats_lab_20_0:
__ats_lab_20_1:
tmp169 = atspre_lte_char_char ('a', arg0) ;
if (tmp169) {
tmp168 = atspre_lte_char_char (arg0, 'z') ;
} else {
tmp168 = ats_false_bool ;
} /* end of [if] */
if (!tmp168) { goto __ats_lab_21_1 ; }
tmp167 = ats_true_bool ;
break ;

/* branch: __ats_lab_21 */
__ats_lab_21_0:
__ats_lab_21_1:
tmp171 = atspre_lte_char_char ('A', arg0) ;
if (tmp171) {
tmp170 = atspre_lte_char_char (arg0, 'Z') ;
} else {
tmp170 = ats_false_bool ;
} /* end of [if] */
if (!tmp170) { goto __ats_lab_22_1 ; }
tmp167 = ats_true_bool ;
break ;

/* branch: __ats_lab_22 */
__ats_lab_22_0:
__ats_lab_22_1:
tmp172 = atspre_eq_char_char (arg0, '_') ;
if (!tmp172) { goto __ats_lab_23_1 ; }
tmp167 = ats_true_bool ;
break ;

/* branch: __ats_lab_23 */
__ats_lab_23_0:
__ats_lab_23_1:
tmp167 = ats_false_bool ;
break ;
} while (0) ;
return (tmp167) ;
} /* end of [IDENTFST_test_18] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 10399(line=438, offs=1) -- 10704(line=449, offs=2)
*/
ATSstaticdec()
ats_bool_type
IDENTRST_test_19 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp173) ;
ATSlocal (ats_bool_type, tmp174) ;
ATSlocal (ats_bool_type, tmp175) ;
ATSlocal (ats_bool_type, tmp176) ;
ATSlocal (ats_bool_type, tmp177) ;
ATSlocal (ats_bool_type, tmp178) ;
ATSlocal (ats_bool_type, tmp179) ;
ATSlocal (ats_bool_type, tmp180) ;
ATSlocal (ats_bool_type, tmp181) ;
ATSlocal (ats_bool_type, tmp182) ;

__ats_lab_IDENTRST_test_19:
do {
/* branch: __ats_lab_24 */
__ats_lab_24_0:
__ats_lab_24_1:
tmp175 = atspre_lte_char_char ('a', arg0) ;
if (tmp175) {
tmp174 = atspre_lte_char_char (arg0, 'z') ;
} else {
tmp174 = ats_false_bool ;
} /* end of [if] */
if (!tmp174) { goto __ats_lab_25_1 ; }
tmp173 = ats_true_bool ;
break ;

/* branch: __ats_lab_25 */
__ats_lab_25_0:
__ats_lab_25_1:
tmp177 = atspre_lte_char_char ('A', arg0) ;
if (tmp177) {
tmp176 = atspre_lte_char_char (arg0, 'Z') ;
} else {
tmp176 = ats_false_bool ;
} /* end of [if] */
if (!tmp176) { goto __ats_lab_26_1 ; }
tmp173 = ats_true_bool ;
break ;

/* branch: __ats_lab_26 */
__ats_lab_26_0:
__ats_lab_26_1:
tmp179 = atspre_lte_char_char ('0', arg0) ;
if (tmp179) {
tmp178 = atspre_lte_char_char (arg0, '9') ;
} else {
tmp178 = ats_false_bool ;
} /* end of [if] */
if (!tmp178) { goto __ats_lab_27_1 ; }
tmp173 = ats_true_bool ;
break ;

/* branch: __ats_lab_27 */
__ats_lab_27_0:
__ats_lab_27_1:
tmp180 = atspre_eq_char_char (arg0, '_') ;
if (!tmp180) { goto __ats_lab_28_1 ; }
tmp173 = ats_true_bool ;
break ;

/* branch: __ats_lab_28 */
__ats_lab_28_0:
__ats_lab_28_1:
tmp181 = atspre_eq_char_char (arg0, '\'') ;
if (!tmp181) { goto __ats_lab_29_1 ; }
tmp173 = ats_true_bool ;
break ;

/* branch: __ats_lab_29 */
__ats_lab_29_0:
__ats_lab_29_1:
tmp182 = atspre_eq_char_char (arg0, '$') ;
if (!tmp182) { goto __ats_lab_30_1 ; }
tmp173 = ats_true_bool ;
break ;

/* branch: __ats_lab_30 */
__ats_lab_30_0:
__ats_lab_30_1:
tmp173 = ats_false_bool ;
break ;
} while (0) ;
return (tmp173) ;
} /* end of [IDENTRST_test_19] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 10760(line=454, offs=1) -- 10922(line=466, offs=4)
*/
ATSstaticdec()
ats_bool_type
SYMBOLIC_test_20 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp183) ;

__ats_lab_SYMBOLIC_test_20:
tmp183 = atspre_string_contains (ATSstrcst("%&+-./:=@~`^|*!?<>#"), arg0) ;
return (tmp183) ;
} /* end of [SYMBOLIC_test_20] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 10977(line=470, offs=5) -- 11040(line=472, offs=36)
*/
ATSstaticdec()
ats_bool_type
xX_test_21 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp184) ;
ATSlocal (ats_bool_type, tmp185) ;

__ats_lab_xX_test_21:
tmp185 = atspre_eq_char_char (arg0, 'x') ;
if (tmp185) {
tmp184 = ats_true_bool ;
} else {
tmp184 = atspre_eq_char_char (arg0, 'X') ;
} /* end of [if] */
return (tmp184) ;
} /* end of [xX_test_21] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 11200(line=488, offs=5) -- 11247(line=489, offs=37)
*/
ATSstaticdec()
ats_bool_type
DIGIT_test_22 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp186) ;

__ats_lab_DIGIT_test_22:
tmp186 = atspre_char_isdigit (arg0) ;
return (tmp186) ;
} /* end of [DIGIT_test_22] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 11252(line=490, offs=5) -- 11301(line=491, offs=38)
*/
ATSstaticdec()
ats_bool_type
XDIGIT_test_23 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp187) ;

__ats_lab_XDIGIT_test_23:
tmp187 = atspre_char_isxdigit (arg0) ;
return (tmp187) ;
} /* end of [XDIGIT_test_23] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 11332(line=495, offs=5) -- 11390(line=496, offs=48)
*/
ATSstaticdec()
ats_bool_type
INTSP_test_24 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp188) ;

__ats_lab_INTSP_test_24:
tmp188 = atspre_string_contains (ATSstrcst("LlUu"), arg0) ;
return (tmp188) ;
} /* end of [INTSP_test_24] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 11395(line=497, offs=5) -- 11455(line=498, offs=48)
*/
ATSstaticdec()
ats_bool_type
FLOATSP_test_25 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp189) ;

__ats_lab_FLOATSP_test_25:
tmp189 = atspre_string_contains (ATSstrcst("fFlL"), arg0) ;
return (tmp189) ;
} /* end of [FLOATSP_test_25] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 11486(line=502, offs=5) -- 11547(line=503, offs=54)
*/
ATSstaticdec()
ats_bool_type
eE_test_26 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp190) ;
ATSlocal (ats_bool_type, tmp191) ;

__ats_lab_eE_test_26:
tmp191 = atspre_eq_char_char (arg0, 'e') ;
if (tmp191) {
tmp190 = ats_true_bool ;
} else {
tmp190 = atspre_eq_char_char (arg0, 'E') ;
} /* end of [if] */
return (tmp190) ;
} /* end of [eE_test_26] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 11555(line=505, offs=5) -- 11616(line=506, offs=54)
*/
ATSstaticdec()
ats_bool_type
pP_test_27 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp192) ;
ATSlocal (ats_bool_type, tmp193) ;

__ats_lab_pP_test_27:
tmp193 = atspre_eq_char_char (arg0, 'p') ;
if (tmp193) {
tmp192 = ats_true_bool ;
} else {
tmp192 = atspre_eq_char_char (arg0, 'P') ;
} /* end of [if] */
return (tmp192) ;
} /* end of [pP_test_27] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 11647(line=510, offs=5) -- 11710(line=511, offs=54)
*/
ATSstaticdec()
ats_bool_type
SIGN_test_28 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp194) ;
ATSlocal (ats_bool_type, tmp195) ;

__ats_lab_SIGN_test_28:
tmp195 = atspre_eq_char_char (arg0, '+') ;
if (tmp195) {
tmp194 = ats_true_bool ;
} else {
tmp194 = atspre_eq_char_char (arg0, '-') ;
} /* end of [if] */
return (tmp194) ;
} /* end of [SIGN_test_28] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 11812(line=521, offs=5) -- 11872(line=522, offs=49)
*/
ATSstaticdec()
ats_bool_type
ESCHAR_test_29 (ats_char_type arg0) {
/* local vardec */
ATSlocal (ats_bool_type, tmp196) ;

__ats_lab_ESCHAR_test_29:
tmp196 = atspre_string_contains (ATSstrcst("ntvbrfa\\?'\"()[]{}"), arg0) ;
return (tmp196) ;
} /* end of [ESCHAR_test_29] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 12095(line=541, offs=3) -- 12312(line=555, offs=4)
*/
ATSglobaldec()
ats_uint_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_opt (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_uint_type, tmp197) ;
ATSlocal (ats_int_type, tmp198) ;
ATSlocal (ats_bool_type, tmp199) ;
ATSlocal (ats_bool_type, tmp200) ;
ATSlocal (ats_char_type, tmp201) ;
// ATSlocal_void (tmp202) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_opt:
tmp198 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp199 = atspre_gte_int_int (tmp198, 0) ;
if (tmp199) {
tmp201 = atspre_char_of_int (tmp198) ;
tmp200 = ((ats_bool_type(*)(ats_char_type))arg2) (tmp201) ;
if (tmp200) {
/* tmp202 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp197 = 1u ;
} else {
tmp197 = 0u ;
} /* end of [if] */
} else {
tmp197 = 0u ;
} /* end of [if] */
return (tmp197) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_opt] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 12570(line=576, offs=1) -- 12831(line=593, offs=4)
*/
ATSstaticdec()
ats_uint_type
loop_32 (ats_ref_type arg0, ats_uint_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_uint_type, tmp204) ;
ATSlocal (ats_int_type, tmp205) ;
ATSlocal (ats_bool_type, tmp206) ;
ATSlocal (ats_bool_type, tmp207) ;
ATSlocal (ats_char_type, tmp208) ;
ATSlocal (ats_uint_type, tmp209) ;

__ats_lab_loop_32:
tmp205 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_char (arg0, arg1) ;
tmp206 = atspre_gte_int_int (tmp205, 0) ;
if (tmp206) {
tmp208 = atspre_char_of_int (tmp205) ;
tmp207 = ((ats_bool_type(*)(ats_char_type))arg2) (tmp208) ;
if (tmp207) {
tmp209 = atspre_succ_uint (arg1) ;
arg0 = arg0 ;
arg1 = tmp209 ;
arg2 = arg2 ;
goto __ats_lab_loop_32 ; // tail call
} else {
tmp204 = arg1 ;
} /* end of [if] */
} else {
tmp204 = arg1 ;
} /* end of [if] */
return (tmp204) ;
} /* end of [loop_32] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 12530(line=570, offs=1) -- 13050(line=607, offs=2)
*/
ATSglobaldec()
ats_uint_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq0 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_uint_type, tmp203) ;
ATSlocal (ats_uint_type, tmp210) ;
ATSlocal (ats_uint_type, tmp211) ;
ATSlocal (ats_uint_type, tmp212) ;
// ATSlocal_void (tmp213) ;
ATSlocal (ats_bool_type, tmp214) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq0:
tmp210 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_diff (arg0, arg1) ;
tmp211 = loop_32 (arg0, tmp210, arg2) ;
tmp212 = atspre_sub_uint_uint (tmp211, tmp210) ;
tmp214 = atspre_gt_uint_uint (tmp212, 0u) ;
if (tmp214) {
/* tmp213 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, tmp212) ;
} else {
/* empty */
} /* end of [if] */
tmp203 = tmp212 ;
return (tmp203) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq0] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 13273(line=622, offs=3) -- 13601(line=642, offs=4)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq1 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp215) ;
ATSlocal (ats_int_type, tmp216) ;
ATSlocal (ats_bool_type, tmp217) ;
ATSlocal (ats_bool_type, tmp218) ;
ATSlocal (ats_char_type, tmp219) ;
// ATSlocal_void (tmp220) ;
ATSlocal (ats_uint_type, tmp221) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq1:
tmp216 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp217 = atspre_gte_int_int (tmp216, 0) ;
if (tmp217) {
tmp219 = atspre_char_of_int (tmp216) ;
tmp218 = ((ats_bool_type(*)(ats_char_type))arg2) (tmp219) ;
if (tmp218) {
/* tmp220 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp221 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq0 (arg0, arg1, arg2) ;
tmp215 = atspre_add_int_int (ats_castfn_mac(ats_int_type, tmp221), 1) ;
} else {
tmp215 = -1 ;
} /* end of [if] */
} else {
tmp215 = -1 ;
} /* end of [if] */
return (tmp215) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq1] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 13848(line=655, offs=7) -- 14183(line=669, offs=6)
*/
ATSstaticdec()
ats_uint_type
loop_35 (ats_ref_type arg0, ats_ref_type arg1, ats_uint_type arg2) {
/* local vardec */
ATSlocal (ats_uint_type, tmp223) ;
ATSlocal (ats_int_type, tmp224) ;
ATSlocal (ats_bool_type, tmp225) ;
ATSlocal (ats_bool_type, tmp226) ;
ATSlocal (ats_char_type, tmp227) ;
// ATSlocal_void (tmp228) ;
ATSlocal (ats_uint_type, tmp229) ;

__ats_lab_loop_35:
tmp224 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_char (arg0, arg2) ;
tmp225 = atspre_gte_int_int (tmp224, 0) ;
if (tmp225) {
tmp227 = atspre_char_of_int (tmp224) ;
tmp226 = BLANK_test_17 (tmp227) ;
if (tmp226) {
/* tmp228 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char (arg1, tmp224) ;
tmp229 = atspre_succ_uint (arg2) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp229 ;
goto __ats_lab_loop_35 ; // tail call
} else {
tmp223 = arg2 ;
} /* end of [if] */
} else {
tmp223 = arg2 ;
} /* end of [if] */
return (tmp223) ;
} /* end of [loop_35] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 13767(line=651, offs=1) -- 14283(line=672, offs=2)
*/
ATSstaticdec()
ats_uint_type
testing_blankseq0_34 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_uint_type, tmp222) ;
ATSlocal (ats_uint_type, tmp230) ;
ATSlocal (ats_uint_type, tmp231) ;

__ats_lab_testing_blankseq0_34:
tmp230 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_diff (arg0, arg1) ;
tmp231 = loop_35 (arg0, arg1, tmp230) ;
tmp222 = atspre_sub_uint_uint (tmp231, tmp230) ;
return (tmp222) ;
} /* end of [testing_blankseq0_34] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 14471(line=684, offs=1) -- 14693(line=692, offs=2)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_litchar (ats_ref_type arg0, ats_ref_type arg1, ats_char_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp232) ;
ATSlocal (ats_int_type, tmp233) ;
ATSlocal (ats_int_type, tmp234) ;
ATSlocal (ats_bool_type, tmp235) ;
ATSlocal (ats_bool_type, tmp236) ;
ATSlocal (ats_char_type, tmp237) ;
// ATSlocal_void (tmp238) ;
ATSlocal (ats_bool_type, tmp239) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_litchar:
tmp233 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp235 = atspre_gte_int_int (tmp233, 0) ;
if (tmp235) {
tmp237 = atspre_char_of_int (tmp233) ;
tmp236 = atspre_eq_char_char (tmp237, arg2) ;
if (tmp236) {
tmp234 = 1 ;
} else {
tmp234 = -1 ;
} /* end of [if] */
} else {
tmp234 = -1 ;
} /* end of [if] */
tmp239 = atspre_gte_int_int (tmp234, 0) ;
if (tmp239) {
/* tmp238 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char (arg1, tmp233) ;
} else {
/* empty */
} /* end of [if] */
tmp232 = tmp234 ;
return (tmp232) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_litchar] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 15002(line=713, offs=5) -- 15413(line=739, offs=4)
*/
ATSstaticdec()
ats_int_type
loop_38 (ats_ref_type arg0, ats_uint_type arg1, ats_ptr_type arg2, ats_size_type arg3) {
/* local vardec */
ATSlocal (ats_int_type, tmp241) ;
ATSlocal (ats_bool_type, tmp242) ;
ATSlocal (ats_int_type, tmp243) ;
ATSlocal (ats_bool_type, tmp244) ;
ATSlocal (ats_bool_type, tmp245) ;
ATSlocal (ats_char_type, tmp246) ;
ATSlocal (ats_char_type, tmp247) ;
ATSlocal (ats_uint_type, tmp248) ;
ATSlocal (ats_size_type, tmp249) ;

__ats_lab_loop_38:
tmp242 = atspre_string_isnot_atend (arg2, arg3) ;
if (tmp242) {
tmp243 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_char (arg0, arg1) ;
tmp244 = atspre_gte_int_int (tmp243, 0) ;
if (tmp244) {
tmp246 = atspre_char_of_int (tmp243) ;
tmp247 = atspre_string_get_char_at (arg2, arg3) ;
tmp245 = atspre_eq_char_char (tmp246, tmp247) ;
if (tmp245) {
tmp248 = atspre_succ_uint (arg1) ;
tmp249 = atspre_add_size1_int1 (arg3, 1) ;
arg0 = arg0 ;
arg1 = tmp248 ;
arg2 = arg2 ;
arg3 = tmp249 ;
goto __ats_lab_loop_38 ; // tail call
} else {
tmp241 = -1 ;
} /* end of [if] */
} else {
tmp241 = -1 ;
} /* end of [if] */
} else {
tmp241 = atspre_int1_of_size1 (arg3) ;
} /* end of [if] */
return (tmp241) ;
} /* end of [loop_38] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 14920(line=706, offs=3) -- 15621(line=751, offs=2)
*/
ATSglobaldec()
ats_int_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp240) ;
ATSlocal (ats_uint_type, tmp250) ;
ATSlocal (ats_int_type, tmp251) ;
// ATSlocal_void (tmp252) ;
ATSlocal (ats_bool_type, tmp253) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal:
tmp250 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_diff (arg0, arg1) ;
tmp251 = loop_38 (arg0, tmp250, ats_castfn_mac(ats_ptr_type, arg2), 0) ;
tmp253 = atspre_gte_int_int (tmp251, 0) ;
if (tmp253) {
/* tmp252 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, ats_castfn_mac(ats_uint_type, tmp251)) ;
} else {
/* empty */
} /* end of [if] */
tmp240 = tmp251 ;
return (tmp240) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 15676(line=756, offs=1) -- 15779(line=758, offs=44)
*/
ATSstaticdec()
ats_uint_type
testing_identrstseq0_39 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_uint_type, tmp254) ;

__ats_lab_testing_identrstseq0_39:
tmp254 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq0 (arg0, arg1, &IDENTRST_test_19) ;
return (tmp254) ;
} /* end of [testing_identrstseq0_39] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 15818(line=762, offs=1) -- 15921(line=764, offs=44)
*/
ATSstaticdec()
ats_uint_type
testing_symbolicseq0_40 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_uint_type, tmp255) ;

__ats_lab_testing_symbolicseq0_40:
tmp255 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq0 (arg0, arg1, &SYMBOLIC_test_20) ;
return (tmp255) ;
} /* end of [testing_symbolicseq0_40] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 16065(line=776, offs=5) -- 16723(line=805, offs=2)
*/
ATSstaticdec()
ats_bool_type
f3_42 (ats_ref_type arg0, ats_uint_type arg1, ats_char_type arg2) {
/* local vardec */
ATSlocal (ats_bool_type, tmp257) ;
ATSlocal (ats_bool_type, tmp258) ;
ATSlocal (ats_bool_type, tmp259) ;
ATSlocal (ats_bool_type, tmp260) ;
ATSlocal (ats_bool_type, tmp261) ;
ATSlocal (ats_bool_type, tmp262) ;
ATSlocal (ats_bool_type, tmp263) ;
ATSlocal (pats_position_struct, tmp264) ;
// ATSlocal_void (tmp265) ;
// ATSlocal_void (tmp266) ;
ATSlocal (pats_position_struct, tmp267) ;
// ATSlocal_void (tmp268) ;
// ATSlocal_void (tmp269) ;
ATSlocal (ats_uint_type, tmp270) ;
ATSlocal (ats_ptr_type, tmp271) ;
ATSlocal (ats_ptr_type, tmp272) ;
ATSlocal (ats_ptr_type, tmp273) ;
// ATSlocal_void (tmp274) ;

__ats_lab_f3_42:
do {
/* branch: __ats_lab_31 */
__ats_lab_31_0:
__ats_lab_31_1:
tmp259 = atspre_lte_char_char ('0', arg2) ;
tmp260 = atspre_lte_char_char (arg2, '7') ;
tmp258 = atspre_mul_bool_bool (tmp259, tmp260) ;
if (!tmp258) { goto __ats_lab_32_1 ; }
tmp257 = ats_true_bool ;
break ;

/* branch: __ats_lab_32 */
__ats_lab_32_0:
__ats_lab_32_1:
tmp262 = atspre_lte_char_char ('8', arg2) ;
tmp263 = atspre_lte_char_char (arg2, '9') ;
tmp261 = atspre_mul_bool_bool (tmp262, tmp263) ;
if (!tmp261) { goto __ats_lab_33_1 ; }
/* pats_position_struct tmp264 ; */
/* tmp265 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_position (arg0, (&tmp264)) ;
/* tmp266 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count ((&tmp264), arg1) ;
/* pats_position_struct tmp267 ; */
/* tmp268 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_position (arg0, (&tmp267)) ;
tmp270 = atspre_succ_uint (arg1) ;
/* tmp269 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count ((&tmp267), tmp270) ;
tmp271 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_make_pos_pos (tmp264, tmp267) ;
tmp273 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp273)->tag = 9 ;
ats_selptrset_mac(anairiats_sum_3, tmp273, atslab_0, arg2) ;
tmp272 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp271, tmp273) ;
/* tmp274 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp272) ;
tmp257 = ats_true_bool ;
break ;

/* branch: __ats_lab_33 */
__ats_lab_33_0:
__ats_lab_33_1:
tmp257 = ats_false_bool ;
break ;
} while (0) ;
return (tmp257) ;
} /* end of [f3_42] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 16731(line=808, offs=1) -- 16961(line=819, offs=4)
*/
ATSstaticdec()
ats_uint_type
loop_43 (ats_ref_type arg0, ats_uint_type arg1) {
/* local vardec */
ATSlocal (ats_uint_type, tmp275) ;
ATSlocal (ats_int_type, tmp276) ;
ATSlocal (ats_bool_type, tmp277) ;
ATSlocal (ats_bool_type, tmp278) ;
ATSlocal (ats_char_type, tmp279) ;
ATSlocal (ats_uint_type, tmp280) ;

__ats_lab_loop_43:
tmp276 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_char (arg0, arg1) ;
tmp277 = atspre_gte_int_int (tmp276, 0) ;
if (tmp277) {
tmp279 = atspre_char_of_int (tmp276) ;
tmp278 = f3_42 (arg0, arg1, tmp279) ;
if (tmp278) {
tmp280 = atspre_succ_uint (arg1) ;
arg0 = arg0 ;
arg1 = tmp280 ;
goto __ats_lab_loop_43 ; // tail call
} else {
tmp275 = arg1 ;
} /* end of [if] */
} else {
tmp275 = arg1 ;
} /* end of [if] */
return (tmp275) ;
} /* end of [loop_43] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 15983(line=770, offs=1) -- 17169(line=829, offs=2)
*/
ATSstaticdec()
ats_uint_type
testing_octalseq0_41 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_uint_type, tmp256) ;
ATSlocal (ats_uint_type, tmp281) ;
ATSlocal (ats_uint_type, tmp282) ;
ATSlocal (ats_uint_type, tmp283) ;
// ATSlocal_void (tmp284) ;
ATSlocal (ats_bool_type, tmp285) ;

__ats_lab_testing_octalseq0_41:
tmp281 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_diff (arg0, arg1) ;
tmp282 = loop_43 (arg0, tmp281) ;
tmp283 = atspre_sub_uint_uint (tmp282, tmp281) ;
tmp285 = atspre_gt_uint_uint (tmp283, 0u) ;
if (tmp285) {
/* tmp284 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, tmp283) ;
} else {
/* empty */
} /* end of [if] */
tmp256 = tmp283 ;
return (tmp256) ;
} /* end of [testing_octalseq0_41] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 17233(line=834, offs=1) -- 17331(line=837, offs=48)
*/
ATSstaticdec()
ats_uint_type
testing_digitseq0_44 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_uint_type, tmp286) ;

__ats_lab_testing_digitseq0_44:
tmp286 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq0 (arg0, arg1, &DIGIT_test_22) ;
return (tmp286) ;
} /* end of [testing_digitseq0_44] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 17339(line=840, offs=1) -- 17439(line=843, offs=49)
*/
ATSstaticdec()
ats_uint_type
testing_xdigitseq0_45 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_uint_type, tmp287) ;

__ats_lab_testing_xdigitseq0_45:
tmp287 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq0 (arg0, arg1, &XDIGIT_test_23) ;
return (tmp287) ;
} /* end of [testing_xdigitseq0_45] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 17470(line=848, offs=1) -- 17568(line=851, offs=48)
*/
ATSstaticdec()
ats_uint_type
testing_intspseq0_46 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_uint_type, tmp288) ;

__ats_lab_testing_intspseq0_46:
tmp288 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq0 (arg0, arg1, &INTSP_test_24) ;
return (tmp288) ;
} /* end of [testing_intspseq0_46] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 17599(line=856, offs=1) -- 17701(line=859, offs=50)
*/
ATSstaticdec()
ats_uint_type
testing_floatspseq0_47 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_uint_type, tmp289) ;

__ats_lab_testing_floatspseq0_47:
tmp289 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_seq0 (arg0, arg1, &FLOATSP_test_25) ;
return (tmp289) ;
} /* end of [testing_floatspseq0_47] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 17730(line=864, offs=1) -- 18396(line=903, offs=4)
*/
ATSstaticdec()
ats_int_type
testing_fexponent_48 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp290) ;
ATSlocal (ats_int_type, tmp291) ;
ATSlocal (ats_bool_type, tmp292) ;
ATSlocal (ats_char_type, tmp293) ;
ATSlocal (ats_bool_type, tmp294) ;
// ATSlocal_void (tmp295) ;
ATSlocal (ats_uint_type, tmp296) ;
ATSlocal (ats_uint_type, tmp297) ;
// ATSlocal_void (tmp298) ;
ATSlocal (ats_bool_type, tmp299) ;
ATSlocal (ats_ptr_type, tmp300) ;
ATSlocal (ats_ptr_type, tmp301) ;
ATSlocal (ats_ptr_type, tmp302) ;
ATSlocal (ats_uint_type, tmp303) ;
ATSlocal (ats_uint_type, tmp304) ;

__ats_lab_testing_fexponent_48:
tmp291 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp292 = atspre_gte_int_int (tmp291, 0) ;
if (tmp292) {
tmp293 = atspre_char_of_int (tmp291) ;
tmp294 = eE_test_26 (tmp293) ;
if (tmp294) {
/* tmp295 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp296 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_opt (arg0, arg1, &SIGN_test_28) ;
tmp297 = testing_digitseq0_44 (arg0, arg1) ;
tmp299 = atspre_eq_uint_uint (tmp297, 0u) ;
if (tmp299) {
tmp300 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, arg1) ;
tmp302 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FEXPONENT_empty_11) ;
tmp301 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp300, tmp302) ;
/* tmp298 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp301) ;
} else {
/* empty */
} /* end of [if] */
tmp304 = atspre_add_uint_uint (tmp296, tmp297) ;
tmp303 = atspre_add_uint_uint (tmp304, 1u) ;
tmp290 = ats_castfn_mac(ats_int_type, tmp303) ;
} else {
tmp290 = -1 ;
} /* end of [if] */
} else {
tmp290 = -1 ;
} /* end of [if] */
return (tmp290) ;
} /* end of [testing_fexponent_48] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 18453(line=908, offs=1) -- 19127(line=949, offs=4)
*/
ATSstaticdec()
ats_int_type
testing_fexponent_bin_49 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp305) ;
ATSlocal (ats_int_type, tmp306) ;
ATSlocal (ats_bool_type, tmp307) ;
ATSlocal (ats_char_type, tmp308) ;
ATSlocal (ats_bool_type, tmp309) ;
// ATSlocal_void (tmp310) ;
ATSlocal (ats_uint_type, tmp311) ;
ATSlocal (ats_uint_type, tmp312) ;
// ATSlocal_void (tmp313) ;
ATSlocal (ats_bool_type, tmp314) ;
ATSlocal (ats_ptr_type, tmp315) ;
ATSlocal (ats_ptr_type, tmp316) ;
ATSlocal (ats_ptr_type, tmp317) ;
ATSlocal (ats_uint_type, tmp318) ;
ATSlocal (ats_uint_type, tmp319) ;

__ats_lab_testing_fexponent_bin_49:
tmp306 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp307 = atspre_gte_int_int (tmp306, 0) ;
if (tmp307) {
tmp308 = atspre_char_of_int (tmp306) ;
tmp309 = pP_test_27 (tmp308) ;
if (tmp309) {
/* tmp310 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp311 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__ftesting_opt (arg0, arg1, &SIGN_test_28) ;
tmp312 = testing_digitseq0_44 (arg0, arg1) ;
tmp314 = atspre_eq_uint_uint (tmp312, 0u) ;
if (tmp314) {
tmp315 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, arg1) ;
tmp317 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FEXPONENT_empty_11) ;
tmp316 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp315, tmp317) ;
/* tmp313 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp316) ;
} else {
/* empty */
} /* end of [if] */
tmp319 = atspre_add_uint_uint (tmp311, tmp312) ;
tmp318 = atspre_add_uint_uint (tmp319, 1u) ;
tmp305 = ats_castfn_mac(ats_int_type, tmp318) ;
} else {
tmp305 = -1 ;
} /* end of [if] */
} else {
tmp305 = -1 ;
} /* end of [if] */
return (tmp305) ;
} /* end of [testing_fexponent_bin_49] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 19188(line=954, offs=1) -- 20041(line=1002, offs=4)
*/
ATSstaticdec()
ats_int_type
testing_deciexp_50 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp320) ;
ATSlocal (ats_int_type, tmp321) ;
ATSlocal (ats_bool_type, tmp322) ;
ATSlocal (ats_char_type, tmp323) ;
ATSlocal (ats_bool_type, tmp324) ;
// ATSlocal_void (tmp325) ;
ATSlocal (ats_uint_type, tmp326) ;
ATSlocal (ats_int_type, tmp327) ;
ATSlocal (ats_int_type, tmp328) ;
ATSlocal (ats_bool_type, tmp329) ;

__ats_lab_testing_deciexp_50:
tmp321 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp322 = atspre_gte_int_int (tmp321, 0) ;
if (tmp322) {
tmp323 = atspre_char_of_int (tmp321) ;
tmp324 = atspre_eq_char_char (tmp323, '.') ;
if (tmp324) {
/* tmp325 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp326 = testing_digitseq0_44 (arg0, arg1) ;
tmp327 = testing_fexponent_48 (arg0, arg1) ;
tmp329 = atspre_gte_int_int (tmp327, 0) ;
if (tmp329) {
tmp328 = atspre_add_int_int (ats_castfn_mac(ats_int_type, tmp326), tmp327) ;
} else {
tmp328 = ats_castfn_mac(ats_int_type, tmp326) ;
} /* end of [if] */
tmp320 = atspre_add_int_int (tmp328, 1) ;
} else {
tmp320 = -1 ;
} /* end of [if] */
} else {
tmp320 = -1 ;
} /* end of [if] */
return (tmp320) ;
} /* end of [testing_deciexp_50] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 20096(line=1007, offs=1) -- 21127(line=1062, offs=4)
*/
ATSstaticdec()
ats_int_type
testing_hexiexp_51 (ats_ref_type arg0, ats_ref_type arg1, ats_uint_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp330) ;
ATSlocal (ats_int_type, tmp331) ;
ATSlocal (ats_bool_type, tmp332) ;
ATSlocal (ats_char_type, tmp333) ;
ATSlocal (ats_bool_type, tmp334) ;
// ATSlocal_void (tmp335) ;
ATSlocal (ats_uint_type, tmp336) ;
ATSlocal (ats_int_type, tmp337) ;
// ATSlocal_void (tmp338) ;
ATSlocal (ats_bool_type, tmp339) ;
ATSlocal (ats_bool_type, tmp340) ;
ATSlocal (ats_bool_type, tmp341) ;
ATSlocal (ats_ptr_type, tmp342) ;
ATSlocal (ats_ptr_type, tmp343) ;
ATSlocal (ats_ptr_type, tmp344) ;
ATSlocal (ats_bool_type, tmp345) ;
ATSlocal (ats_int_type, tmp346) ;
ATSlocal (ats_ptr_type, tmp347) ;
ATSlocal (ats_ptr_type, tmp348) ;
ATSlocal (ats_ptr_type, tmp349) ;
// ATSlocal_void (tmp350) ;

__ats_lab_testing_hexiexp_51:
tmp331 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp332 = atspre_gte_int_int (tmp331, 0) ;
if (tmp332) {
tmp333 = atspre_char_of_int (tmp331) ;
tmp334 = atspre_eq_char_char (tmp333, '.') ;
if (tmp334) {
/* tmp335 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp336 = testing_xdigitseq0_45 (arg0, arg1) ;
tmp337 = testing_fexponent_bin_49 (arg0, arg1) ;
tmp340 = atspre_eq_uint_uint (arg2, 0u) ;
tmp341 = atspre_eq_uint_uint (tmp336, 0u) ;
tmp339 = atspre_mul_bool_bool (tmp340, tmp341) ;
if (tmp339) {
tmp342 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, arg1) ;
tmp344 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FINTFRAC_missing_13) ;
tmp343 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp342, tmp344) ;
/* tmp338 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp343) ;
} else {
/* empty */
} /* end of [if] */
tmp345 = atspre_gte_int_int (tmp337, 0) ;
if (tmp345) {
tmp346 = atspre_add_int_int (ats_castfn_mac(ats_int_type, tmp336), tmp337) ;
tmp330 = atspre_add_int_int (tmp346, 1) ;
} else {
tmp347 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, arg1) ;
tmp349 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FEXPONENT_missing_12) ;
tmp348 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp347, tmp349) ;
/* tmp350 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp348) ;
tmp330 = atspre_add_int_int (ats_castfn_mac(ats_int_type, tmp336), 1) ;
} /* end of [if] */
} else {
tmp330 = -1 ;
} /* end of [if] */
} else {
tmp330 = -1 ;
} /* end of [if] */
return (tmp330) ;
} /* end of [testing_hexiexp_51] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 21201(line=1068, offs=3) -- 21254(line=1070, offs=2)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__token_make (ats_ptr_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp351) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__token_make:
tmp351 = ATS_MALLOC(sizeof(anairiats_rec_4)) ;
ats_selptrset_mac(anairiats_rec_4, tmp351, atslab_token_loc, arg0) ;
ats_selptrset_mac(anairiats_rec_4, tmp351, atslab_token_node, arg1) ;

return (tmp351) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__token_make] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 21307(line=1075, offs=1) -- 21524(line=1089, offs=4)
*/
ATSstaticdec()
ats_ptr_type
lexbufpos_token_reset_53 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp352) ;
ATSlocal (ats_ptr_type, tmp353) ;
// ATSlocal_void (tmp354) ;

__ats_lab_lexbufpos_token_reset_53:
tmp353 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, arg1) ;
/* tmp354 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_position (arg0, arg1) ;
tmp352 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__token_make (tmp353, arg2) ;
return (tmp352) ;
} /* end of [lexbufpos_token_reset_53] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 21585(line=1094, offs=1) -- 21869(line=1107, offs=4)
*/
ATSstaticdec()
ats_ptr_type
lexbufpos_lexerr_reset_54 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp355) ;
ATSlocal (ats_ptr_type, tmp356) ;
// ATSlocal_void (tmp357) ;
ATSlocal (ats_ptr_type, tmp358) ;
// ATSlocal_void (tmp359) ;
ATSlocal (ats_ptr_type, tmp360) ;

__ats_lab_lexbufpos_lexerr_reset_54:
tmp356 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, arg1) ;
tmp358 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp356, arg2) ;
/* tmp357 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp358) ;
/* tmp359 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_position (arg0, arg1) ;
tmp360 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ERR_177) ;
tmp355 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__token_make (tmp356, tmp360) ;
return (tmp355) ;
} /* end of [lexbufpos_lexerr_reset_54] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 23333(line=1180, offs=3) -- 23702(line=1200, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_line (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp361) ;
ATSlocal (ats_int_type, tmp362) ;
ATSlocal (ats_bool_type, tmp363) ;
ATSlocal (ats_char_type, tmp364) ;
ATSlocal (ats_ptr_type, tmp365) ;
// ATSlocal_void (tmp366) ;
ATSlocal (ats_ptr_type, tmp367) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_line:
tmp362 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp363 = atspre_gte_int_int (tmp362, 0) ;
if (tmp363) {
tmp364 = atspre_char_of_int (tmp362) ;
do {
/* branch: __ats_lab_34 */
__ats_lab_34_0:
if (tmp364 != '\n') { goto __ats_lab_35_0 ; }
__ats_lab_34_1:
tmp365 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMENT_line_174) ;
tmp361 = lexbufpos_token_reset_53 (arg0, arg1, tmp365) ;
break ;

/* branch: __ats_lab_35 */
__ats_lab_35_0:
__ats_lab_35_1:
/* tmp366 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
arg0 = arg0 ;
arg1 = arg1 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_line ; // tail call
break ;
} while (0) ;
} else {
tmp367 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMENT_line_174) ;
tmp361 = lexbufpos_token_reset_53 (arg0, arg1, tmp367) ;
} /* end of [if] */
return (tmp361) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_line] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 23816(line=1209, offs=1) -- 23927(line=1212, offs=62)
*/
ATSstaticdec()
ats_ptr_type
feof_57 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp369) ;
ATSlocal (ats_ptr_type, tmp370) ;

__ats_lab_feof_57:
tmp370 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_COMMENT_block_unclose_7) ;
tmp369 = lexbufpos_lexerr_reset_54 (arg0, arg1, tmp370) ;
return (tmp369) ;
} /* end of [feof_57] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 23792(line=1206, offs=3) -- 24322(line=1233, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_c (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp368) ;
ATSlocal (ats_int_type, tmp371) ;
ATSlocal (ats_bool_type, tmp372) ;
ATSlocal (ats_char_type, tmp373) ;
ATSlocal (ats_bool_type, tmp374) ;
ATSlocal (ats_int_type, tmp375) ;
ATSlocal (ats_ptr_type, tmp376) ;
// ATSlocal_void (tmp377) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_c:
tmp371 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp372 = atspre_gte_int_int (tmp371, 0) ;
if (tmp372) {
tmp373 = atspre_char_of_int (tmp371) ;
do {
/* branch: __ats_lab_36 */
__ats_lab_36_0:
if (tmp373 != '*') { goto __ats_lab_37_0 ; }
__ats_lab_36_1:
tmp375 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("*/")) ;
tmp374 = atspre_gte_int_int (tmp375, 0) ;
if (!tmp374) { goto __ats_lab_37_1 ; }
tmp376 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMENT_block_176) ;
tmp368 = lexbufpos_token_reset_53 (arg0, arg1, tmp376) ;
break ;

/* branch: __ats_lab_37 */
__ats_lab_37_0:
__ats_lab_37_1:
/* tmp377 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char (arg1, tmp371) ;
arg0 = arg0 ;
arg1 = arg1 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_c ; // tail call
break ;
} while (0) ;
} else {
tmp368 = feof_57 (arg0, arg1) ;
} /* end of [if] */
return (tmp368) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_c] */

/*
// /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_61 (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp385) ;
ATSlocal (ats_ptr_type, tmp386) ;

__ats_lab_loop_61:
do {
/* branch: __ats_lab_38 */
__ats_lab_38_0:
if (arg0 == (ats_sum_ptr_type)0) { goto __ats_lab_39_0 ; }
__ats_lab_38_1:
tmp386 = ats_caselptrlab_mac(anairiats_sum_5, arg0, atslab_1) ;
ATS_FREE(arg0) ;
arg0 = tmp386 ;
goto __ats_lab_loop_61 ; // tail call
break ;

/* branch: __ats_lab_39 */
__ats_lab_39_0:
// if (arg0 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_39_1:
break ;
} while (0) ;
return /* (tmp385) */ ;
} /* end of [loop_61] */

/*
// /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_pats_position_struct (ats_ptr_type arg0) {
/* local vardec */
// ATSlocal_void (tmp384) ;

__ats_lab_list_vt_free_01499_pats_position_struct:
/* tmp384 = */ loop_61 (arg0) ;
return /* (tmp384) */ ;
} /* end of [list_vt_free_01499_pats_position_struct] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 24444(line=1242, offs=1) -- 24838(line=1259, offs=4)
*/
ATSstaticdec()
ats_ptr_type
feof_59 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp379) ;
ATSlocal (ats_ptr_type, tmp380) ;
ATSlocal (ats_ptr_type, tmp381) ;
ATSlocal (pats_position_struct, tmp382) ;
// ATSlocal_void (tmp383) ;
ATSlocal (ats_ptr_type, tmp387) ;
ATSlocal (ats_ptr_type, tmp388) ;
// ATSlocal_void (tmp389) ;
// ATSlocal_void (tmp390) ;
ATSlocal (ats_ptr_type, tmp391) ;

__ats_lab_feof_59:
if (arg2 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_lexing.dats: 24541(line=1249, offs=7) -- 24567(line=1249, offs=33)") ; }
tmp380 = &ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_0) ;
tmp382 = ats_ptrget_mac(pats_position_struct, tmp380) ;
tmp381 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_make_pos_pos (tmp382, ats_ptrget_mac(pats_position_struct, arg1)) ;
/* tmp383 = */ list_vt_free_01499_pats_position_struct (arg2) ;
tmp388 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_COMMENT_block_unclose_7) ;
tmp387 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp381, tmp388) ;
/* tmp389 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp387) ;
/* tmp390 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_position (arg0, arg1) ;
tmp391 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ERR_177) ;
tmp379 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__token_make (tmp381, tmp391) ;
return (tmp379) ;
} /* end of [feof_59] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 24416(line=1239, offs=3) -- 25937(line=1302, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_ml (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp378) ;
ATSlocal (ats_int_type, tmp392) ;
ATSlocal (ats_bool_type, tmp393) ;
ATSlocal (ats_char_type, tmp394) ;
ATSlocal (pats_position_struct, tmp395) ;
// ATSlocal_void (tmp396) ;
ATSlocal (ats_int_type, tmp397) ;
ATSlocal (ats_bool_type, tmp398) ;
ATSlocal (ats_ptr_type, tmp399) ;
// ATSlocal_void (tmp400) ;
ATSlocal (ats_bool_type, tmp401) ;
ATSlocal (ats_int_type, tmp402) ;
ATSlocal (ats_ptr_type, tmp403) ;
ATSlocal (ats_ptr_type, tmp404) ;
// ATSlocal_void (tmp405) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_ml:
tmp392 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp393 = atspre_gte_int_int (tmp392, 0) ;
if (tmp393) {
tmp394 = atspre_char_of_int (tmp392) ;
do {
/* branch: __ats_lab_40 */
__ats_lab_40_0:
if (tmp394 != '(') { goto __ats_lab_41_0 ; }
__ats_lab_40_1:
/* pats_position_struct tmp395 ; */
/* tmp396 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_copy ((&tmp395), arg1) ;
tmp397 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("(*")) ;
tmp398 = atspre_gte_int_int (tmp397, 0) ;
if (tmp398) {
tmp399 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp399, atslab_0, tmp395) ;
ats_selptrset_mac(anairiats_sum_5, tmp399, atslab_1, arg2) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp399 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_ml ; // tail call
} else {
/* tmp400 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_ml ; // tail call
} /* end of [if] */
break ;

/* branch: __ats_lab_41 */
__ats_lab_41_0:
if (tmp394 != '*') { goto __ats_lab_44_0 ; }
__ats_lab_41_1:
tmp402 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("*)")) ;
tmp401 = atspre_gte_int_int (tmp402, 0) ;
if (!tmp401) { goto __ats_lab_44_1 ; }
// if (arg2 == (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
tmp403 = ats_caselptrlab_mac(anairiats_sum_5, arg2, atslab_1) ;
ATS_FREE(arg2) ;
do {
/* branch: __ats_lab_42 */
__ats_lab_42_0:
if (tmp403 == (ats_sum_ptr_type)0) { goto __ats_lab_43_0 ; }
__ats_lab_42_1:
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = tmp403 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_ml ; // tail call
break ;

/* branch: __ats_lab_43 */
__ats_lab_43_0:
// if (tmp403 != (ats_sum_ptr_type)0) { ats_deadcode_failure_handle () ; }
__ats_lab_43_1:
tmp404 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMENT_block_176) ;
tmp378 = lexbufpos_token_reset_53 (arg0, arg1, tmp404) ;
break ;
} while (0) ;
break ;

/* branch: __ats_lab_44 */
__ats_lab_44_0:
__ats_lab_44_1:
/* tmp405 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char (arg1, tmp392) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_ml ; // tail call
break ;
} while (0) ;
} else {
tmp378 = feof_59 (arg0, arg1, arg2) ;
} /* end of [if] */
return (tmp378) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_ml] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 26028(line=1308, offs=3) -- 26267(line=1317, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_rest (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp406) ;
ATSlocal (ats_int_type, tmp407) ;
ATSlocal (ats_bool_type, tmp408) ;
// ATSlocal_void (tmp409) ;
ATSlocal (ats_ptr_type, tmp410) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_rest:
tmp407 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp408 = atspre_gte_int_int (tmp407, 0) ;
if (tmp408) {
/* tmp409 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char (arg1, tmp407) ;
arg0 = arg0 ;
arg1 = arg1 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_rest ; // tail call
} else {
tmp410 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMENT_rest_175) ;
tmp406 = lexbufpos_token_reset_53 (arg0, arg1, tmp410) ;
} /* end of [if] */
return (tmp406) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_rest] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 26413(line=1330, offs=1) -- 26673(line=1343, offs=4)
*/
ATSstaticdec()
ats_uint_type
extcode_nskip_63 (ats_int_type arg0) {
/* local vardec */
ATSlocal (ats_uint_type, tmp411) ;
ATSlocal (ats_bool_type, tmp412) ;
ATSlocal (ats_bool_type, tmp413) ;
ATSlocal (ats_bool_type, tmp414) ;
ATSlocal (ats_bool_type, tmp415) ;
ATSlocal (ats_bool_type, tmp416) ;
ATSlocal (ats_bool_type, tmp417) ;

__ats_lab_extcode_nskip_63:
do {
/* branch: __ats_lab_45 */
__ats_lab_45_0:
__ats_lab_45_1:
tmp412 = atspre_eq_int_int (arg0, 0) ;
if (!tmp412) { goto __ats_lab_46_1 ; }
tmp411 = 3u ;
break ;

/* branch: __ats_lab_46 */
__ats_lab_46_0:
__ats_lab_46_1:
tmp413 = atspre_eq_int_int (arg0, 1) ;
if (!tmp413) { goto __ats_lab_47_1 ; }
tmp411 = 3u ;
break ;

/* branch: __ats_lab_47 */
__ats_lab_47_0:
__ats_lab_47_1:
tmp414 = atspre_lt_int_int (arg0, 10) ;
if (!tmp414) { goto __ats_lab_48_1 ; }
tmp411 = 4u ;
break ;

/* branch: __ats_lab_48 */
__ats_lab_48_0:
__ats_lab_48_1:
tmp415 = atspre_eq_int_int (arg0, 10) ;
if (!tmp415) { goto __ats_lab_49_1 ; }
tmp411 = 2u ;
break ;

/* branch: __ats_lab_49 */
__ats_lab_49_0:
__ats_lab_49_1:
tmp416 = atspre_lt_int_int (arg0, 99) ;
if (!tmp416) { goto __ats_lab_50_1 ; }
tmp411 = 4u ;
break ;

/* branch: __ats_lab_50 */
__ats_lab_50_0:
__ats_lab_50_1:
tmp417 = atspre_eq_int_int (arg0, 99) ;
if (!tmp417) { goto __ats_lab_51_1 ; }
tmp411 = 3u ;
break ;

/* branch: __ats_lab_51 */
__ats_lab_51_0:
__ats_lab_51_1:
tmp411 = 0u ;
break ;
} while (0) ;
return (tmp411) ;
} /* end of [extcode_nskip_63] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 26749(line=1349, offs=3) -- 27760(line=1403, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_EXTCODE (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp418) ;
ATSlocal (ats_int_type, tmp419) ;
ATSlocal (ats_bool_type, tmp420) ;
ATSlocal (ats_char_type, tmp421) ;
ATSlocal (ats_int_type, tmp422) ;
ATSlocal (ats_int_type, tmp423) ;
// ATSlocal_void (tmp424) ;
ATSlocal (ats_bool_type, tmp425) ;
// ATSlocal_void (tmp426) ;
ATSlocal (ats_bool_type, tmp427) ;
ATSlocal (ats_int_type, tmp428) ;
ATSlocal (ats_char_type, tmp429) ;
ATSlocal (ats_bool_type, tmp430) ;
ATSlocal (ats_int_type, tmp431) ;
// ATSlocal_void (tmp432) ;
ATSlocal (ats_bool_type, tmp433) ;
ATSlocal (ats_int_type, tmp434) ;
ATSlocal (ats_char_type, tmp435) ;
ATSlocal (ats_bool_type, tmp436) ;
ATSlocal (ats_int_type, tmp437) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_EXTCODE:
tmp419 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp420 = atspre_gte_int_int (tmp419, 0) ;
if (tmp420) {
tmp421 = atspre_char_of_int (tmp419) ;
do {
/* branch: __ats_lab_52 */
__ats_lab_52_0:
if (tmp421 != '#') { goto __ats_lab_53_0 ; }
__ats_lab_52_1:
tmp422 = 0 ;
break ;

/* branch: __ats_lab_53 */
__ats_lab_53_0:
if (tmp421 != '^') { goto __ats_lab_54_0 ; }
__ats_lab_53_1:
tmp422 = 1 ;
break ;

/* branch: __ats_lab_54 */
__ats_lab_54_0:
if (tmp421 != '$') { goto __ats_lab_55_0 ; }
__ats_lab_54_1:
tmp422 = 99 ;
break ;

/* branch: __ats_lab_55 */
__ats_lab_55_0:
__ats_lab_55_1:
tmp422 = 10 ;
break ;
} while (0) ;
/* ats_int_type tmp423 ; */
tmp423 = tmp422 ;
tmp425 = atspre_neq_int_int (tmp423, 10) ;
if (tmp425) {
/* tmp424 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
} else {
/* empty */
} /* end of [if] */
tmp427 = atspre_eq_int_int (tmp423, 1) ;
if (tmp427) {
tmp428 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp429 = atspre_char_of_int (tmp428) ;
tmp430 = atspre_eq_char_char (tmp429, '2') ;
if (tmp430) {
tmp431 = atspre_add_int_int (tmp423, 1) ;
tmp423 = tmp431 ;
/* tmp426 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
} else {
/* empty */
} /* end of [if] */
} else {
/* empty */
} /* end of [if] */
tmp433 = atspre_eq_int_int (tmp423, 99) ;
if (tmp433) {
tmp434 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp435 = atspre_char_of_int (tmp434) ;
tmp436 = atspre_eq_char_char (tmp435, '2') ;
if (tmp436) {
tmp437 = atspre_sub_int_int (tmp423, 1) ;
tmp423 = tmp437 ;
/* tmp432 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
} else {
/* empty */
} /* end of [if] */
} else {
/* empty */
} /* end of [if] */
tmp418 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_EXTCODE_knd (arg0, arg1, tmp423) ;
} else {
tmp418 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_EXTCODE_knd (arg0, arg1, 10) ;
} /* end of [if] */
return (tmp418) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_EXTCODE] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 27841(line=1409, offs=3) -- 28939(line=1451, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_EXTCODE_knd (ats_ref_type arg0, ats_ref_type arg1, ats_int_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp438) ;
ATSlocal (ats_int_type, tmp439) ;
ATSlocal (ats_bool_type, tmp440) ;
ATSlocal (ats_char_type, tmp441) ;
ATSlocal (ats_bool_type, tmp442) ;
ATSlocal (ats_int_type, tmp443) ;
ATSlocal (ats_int_type, tmp444) ;
ATSlocal (ats_bool_type, tmp445) ;
ATSlocal (ats_ptr_type, tmp446) ;
ATSlocal (ats_uint_type, tmp447) ;
ATSlocal (ats_uint_type, tmp448) ;
ATSlocal (ats_uint_type, tmp449) ;
ATSlocal (ats_uint_type, tmp450) ;
ATSlocal (ats_ptr_type, tmp451) ;
// ATSlocal_void (tmp452) ;
ATSlocal (ats_ptr_type, tmp453) ;
// ATSlocal_void (tmp454) ;
// ATSlocal_void (tmp455) ;
ATSlocal (ats_ptr_type, tmp456) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_EXTCODE_knd:
tmp439 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp440 = atspre_gte_int_int (tmp439, 0) ;
if (tmp440) {
tmp441 = atspre_char_of_int (tmp439) ;
do {
/* branch: __ats_lab_56 */
__ats_lab_56_0:
if (tmp441 != '%') { goto __ats_lab_57_0 ; }
__ats_lab_56_1:
tmp443 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_ncol (arg1) ;
tmp442 = atspre_eq_int_int (tmp443, 0) ;
if (!tmp442) { goto __ats_lab_57_1 ; }
tmp444 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("%}")) ;
tmp445 = atspre_gte_int_int (tmp444, 0) ;
if (tmp445) {
tmp446 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, arg1) ;
tmp447 = extcode_nskip_63 (arg2) ;
tmp450 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_diff (arg0, arg1) ;
tmp449 = atspre_sub_uint_uint (tmp450, tmp447) ;
tmp448 = atspre_sub_uint_uint (tmp449, 2u) ;
tmp451 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_substrptr1 (arg0, tmp447, tmp448) ;
/* tmp452 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_position (arg0, arg1) ;
tmp453 = ATS_MALLOC(sizeof(anairiats_sum_6)) ;
((ats_sum_ptr_type)tmp453)->tag = 173 ;
ats_selptrset_mac(anairiats_sum_6, tmp453, atslab_0, arg2) ;
ats_selptrset_mac(anairiats_sum_6, tmp453, atslab_1, ats_castfn_mac(ats_ptr_type, tmp451)) ;
tmp438 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__token_make (tmp446, tmp453) ;
} else {
/* tmp454 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_EXTCODE_knd ; // tail call
} /* end of [if] */
break ;

/* branch: __ats_lab_57 */
__ats_lab_57_0:
__ats_lab_57_1:
/* tmp455 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char (arg1, tmp439) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_EXTCODE_knd ; // tail call
break ;
} while (0) ;
} else {
tmp456 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_EXTCODE_unclose_8) ;
tmp438 = lexbufpos_lexerr_reset_54 (arg0, arg1, tmp456) ;
} /* end of [if] */
return (tmp438) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_EXTCODE_knd] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 29107(line=1463, offs=3) -- 29557(line=1480, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_LPAREN (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp457) ;
ATSlocal (ats_int_type, tmp458) ;
ATSlocal (ats_char_type, tmp459) ;
// ATSlocal_void (tmp460) ;
ATSlocal (ats_ptr_type, tmp461) ;
ATSlocal (ats_ptr_type, tmp462) ;
ATSlocal (ats_ptr_type, tmp463) ;
// ATSlocal_void (tmp464) ;
ATSlocal (ats_ptr_type, tmp465) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_LPAREN:
tmp458 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp459 = atspre_char_of_int (tmp458) ;
do {
/* branch: __ats_lab_58 */
__ats_lab_58_0:
if (tmp459 != '*') { goto __ats_lab_59_0 ; }
__ats_lab_58_1:
/* tmp460 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp462 = (ats_sum_ptr_type)0 ;
tmp461 = ATS_MALLOC(sizeof(anairiats_sum_5)) ;
ats_selptrset_mac(anairiats_sum_5, tmp461, atslab_1, tmp462) ;
if (tmp461 == (ats_sum_ptr_type)0) { ats_caseof_failure_handle ("/tmp/ATS-Postiats/src/pats_lexing.dats: 29311(line=1473, offs=11) -- 29342(line=1473, offs=42)") ; }
tmp463 = &ats_caselptrlab_mac(anairiats_sum_5, tmp461, atslab_0) ;
/* tmp464 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_position (arg0, tmp463) ;
tmp457 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_ml (arg0, arg1, tmp461) ;
break ;

/* branch: __ats_lab_59 */
__ats_lab_59_0:
__ats_lab_59_1:
tmp465 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LPAREN_157) ;
tmp457 = lexbufpos_token_reset_53 (arg0, arg1, tmp465) ;
break ;
} while (0) ;
return (tmp457) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_LPAREN] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 29693(line=1489, offs=14) -- 29953(line=1498, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMA (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp466) ;
ATSlocal (ats_int_type, tmp467) ;
ATSlocal (ats_char_type, tmp468) ;
// ATSlocal_void (tmp469) ;
ATSlocal (ats_ptr_type, tmp470) ;
ATSlocal (ats_ptr_type, tmp471) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMA:
tmp467 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp468 = atspre_char_of_int (tmp467) ;
do {
/* branch: __ats_lab_60 */
__ats_lab_60_0:
if (tmp468 != '(') { goto __ats_lab_61_0 ; }
__ats_lab_60_1:
/* tmp469 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp470 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMALPAREN_171) ;
tmp466 = lexbufpos_token_reset_53 (arg0, arg1, tmp470) ;
break ;

/* branch: __ats_lab_61 */
__ats_lab_61_0:
__ats_lab_61_1:
tmp471 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COMMA_155) ;
tmp466 = lexbufpos_token_reset_53 (arg0, arg1, tmp471) ;
break ;
} while (0) ;
return (tmp466) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMA] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 30084(line=1508, offs=3) -- 30667(line=1539, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_AT (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp472) ;
ATSlocal (ats_int_type, tmp473) ;
ATSlocal (ats_char_type, tmp474) ;
// ATSlocal_void (tmp475) ;
ATSlocal (ats_ptr_type, tmp476) ;
// ATSlocal_void (tmp477) ;
ATSlocal (ats_ptr_type, tmp478) ;
// ATSlocal_void (tmp479) ;
ATSlocal (ats_ptr_type, tmp480) ;
ATSlocal (ats_uint_type, tmp481) ;
ATSlocal (ats_uint_type, tmp482) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_AT:
tmp473 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp474 = atspre_char_of_int (tmp473) ;
do {
/* branch: __ats_lab_62 */
__ats_lab_62_0:
if (tmp474 != '(') { goto __ats_lab_63_0 ; }
__ats_lab_62_1:
/* tmp475 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp476 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ATLPAREN_163) ;
tmp472 = lexbufpos_token_reset_53 (arg0, arg1, tmp476) ;
break ;

/* branch: __ats_lab_63 */
__ats_lab_63_0:
if (tmp474 != '[') { goto __ats_lab_64_0 ; }
__ats_lab_63_1:
/* tmp477 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp478 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ATLBRACKET_165) ;
tmp472 = lexbufpos_token_reset_53 (arg0, arg1, tmp478) ;
break ;

/* branch: __ats_lab_64 */
__ats_lab_64_0:
if (tmp474 != '{') { goto __ats_lab_65_0 ; }
__ats_lab_64_1:
/* tmp479 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp480 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ATLBRACE_168) ;
tmp472 = lexbufpos_token_reset_53 (arg0, arg1, tmp480) ;
break ;

/* branch: __ats_lab_65 */
__ats_lab_65_0:
__ats_lab_65_1:
tmp481 = testing_symbolicseq0_40 (arg0, arg1) ;
tmp482 = atspre_succ_uint (tmp481) ;
tmp472 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym (arg0, arg1, tmp482) ;
break ;
} while (0) ;
return (tmp472) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_AT] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 30801(line=1549, offs=3) -- 31172(line=1569, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COLON (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp483) ;
ATSlocal (ats_int_type, tmp484) ;
ATSlocal (ats_char_type, tmp485) ;
// ATSlocal_void (tmp486) ;
ATSlocal (ats_ptr_type, tmp487) ;
ATSlocal (ats_uint_type, tmp488) ;
ATSlocal (ats_uint_type, tmp489) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COLON:
tmp484 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp485 = atspre_char_of_int (tmp484) ;
do {
/* branch: __ats_lab_66 */
__ats_lab_66_0:
if (tmp485 != '<') { goto __ats_lab_67_0 ; }
__ats_lab_66_1:
/* tmp486 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp487 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_COLONLT_7) ;
tmp483 = lexbufpos_token_reset_53 (arg0, arg1, tmp487) ;
break ;

/* branch: __ats_lab_67 */
__ats_lab_67_0:
__ats_lab_67_1:
tmp488 = testing_symbolicseq0_40 (arg0, arg1) ;
tmp489 = atspre_succ_uint (tmp488) ;
tmp483 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym (arg0, arg1, tmp489) ;
break ;
} while (0) ;
return (tmp483) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COLON] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 31224(line=1574, offs=1) -- 31335(line=1576, offs=64)
*/
ATSstaticdec()
ats_bool_type
FLOATDOT_test_70 (ats_ref_type arg0, ats_char_type arg1) {
/* local vardec */
ATSlocal (ats_bool_type, tmp490) ;
ATSlocal (ats_bool_type, tmp491) ;
ATSlocal (ats_int_type, tmp492) ;

__ats_lab_FLOATDOT_test_70:
tmp492 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_nspace (arg0) ;
tmp491 = atspre_gt_int_int (tmp492, 0) ;
if (tmp491) {
tmp490 = DIGIT_test_22 (arg1) ;
} else {
tmp490 = ats_false_bool ;
} /* end of [if] */
return (tmp490) ;
} /* end of [FLOATDOT_test_70] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 31428(line=1584, offs=5) -- 31652(line=1593, offs=15)
*/
ATSstaticdec()
ats_int_type
loop_72 (ats_ptr_type arg0, ats_size_type arg1, ats_int_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp494) ;
ATSlocal (ats_bool_type, tmp495) ;
ATSlocal (ats_char_type, tmp496) ;
ATSlocal (ats_int_type, tmp497) ;
ATSlocal (ats_int_type, tmp498) ;
ATSlocal (ats_int_type, tmp499) ;
ATSlocal (ats_size_type, tmp500) ;

__ats_lab_loop_72:
tmp495 = atspre_string_isnot_atend (arg0, arg1) ;
if (tmp495) {
tmp496 = atspre_string_get_char_at (arg0, arg1) ;
tmp498 = atspre_mul_int_int (10, arg2) ;
tmp499 = atspre_sub_char_char (tmp496, '0') ;
tmp497 = atspre_add_int_int (tmp498, tmp499) ;
tmp500 = atspre_add_size1_int1 (arg1, 1) ;
arg0 = arg0 ;
arg1 = tmp500 ;
arg2 = tmp497 ;
goto __ats_lab_loop_72 ; // tail call
} else {
tmp494 = arg2 ;
} /* end of [if] */
return (tmp494) ;
} /* end of [loop_72] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 31392(line=1582, offs=1) -- 31744(line=1600, offs=4)
*/
ATSstaticdec()
ats_int_type
string2int_71 (ats_ptr_type arg0) {
/* local vardec */
ATSlocal (ats_int_type, tmp493) ;

__ats_lab_string2int_71:
tmp493 = loop_72 (ats_castfn_mac(ats_ptr_type, arg0), 0, 0) ;
return (tmp493) ;
} /* end of [string2int_71] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 31875(line=1610, offs=3) -- 32881(line=1652, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DOT (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp501) ;
ATSlocal (ats_int_type, tmp502) ;
ATSlocal (ats_char_type, tmp503) ;
ATSlocal (ats_int_type, tmp504) ;
ATSlocal (ats_bool_type, tmp505) ;
// ATSlocal_void (tmp506) ;
ATSlocal (ats_uint_type, tmp507) ;
ATSlocal (ats_uint_type, tmp508) ;
ATSlocal (ats_bool_type, tmp509) ;
// ATSlocal_void (tmp510) ;
ATSlocal (ats_int_type, tmp511) ;
ATSlocal (ats_bool_type, tmp512) ;
ATSlocal (ats_ptr_type, tmp513) ;
ATSlocal (ats_bool_type, tmp514) ;
// ATSlocal_void (tmp515) ;
ATSlocal (ats_uint_type, tmp516) ;
ATSlocal (ats_ptr_type, tmp517) ;
ATSlocal (ats_uint_type, tmp518) ;
ATSlocal (ats_int_type, tmp519) ;
// ATSlocal_void (tmp520) ;
ATSlocal (ats_ptr_type, tmp521) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DOT:
tmp502 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp503 = atspre_char_of_int (tmp502) ;
tmp504 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_nspace (arg0) ;
do {
/* branch: __ats_lab_68 */
__ats_lab_68_0:
__ats_lab_68_1:
tmp505 = SYMBOLIC_test_20 (tmp503) ;
if (!tmp505) { goto __ats_lab_69_1 ; }
/* tmp506 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp507 = testing_symbolicseq0_40 (arg0, arg1) ;
tmp508 = atspre_add_uint_uint (tmp507, 2u) ;
tmp501 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym (arg0, arg1, tmp508) ;
break ;

/* branch: __ats_lab_69 */
__ats_lab_69_0:
__ats_lab_69_1:
tmp509 = FLOATDOT_test_70 (arg0, tmp503) ;
if (!tmp509) { goto __ats_lab_70_1 ; }
/* tmp510 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_decby_count (arg1, 1u) ;
tmp511 = testing_deciexp_50 (arg0, arg1) ;
tmp512 = atspre_gte_int_int (tmp511, 0) ;
if (tmp512) {
tmp501 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_deciexp (arg0, arg1) ;
} else {
tmp513 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_ERR_177) ;
tmp501 = lexbufpos_token_reset_53 (arg0, arg1, tmp513) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_70 */
__ats_lab_70_0:
__ats_lab_70_1:
tmp514 = DIGIT_test_22 (tmp503) ;
if (!tmp514) { goto __ats_lab_71_1 ; }
/* tmp515 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp516 = testing_digitseq0_44 (arg0, arg1) ;
tmp518 = atspre_add_uint_uint (tmp516, 1u) ;
tmp517 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_substrptr1 (arg0, 1u, tmp518) ;
tmp519 = string2int_71 (ats_castfn_mac(ats_ptr_type, tmp517)) ;
/* tmp520 = */ atspre_strptr_free (tmp517) ;
tmp521 = ATS_MALLOC(sizeof(anairiats_sum_7)) ;
((ats_sum_ptr_type)tmp521)->tag = 12 ;
ats_selptrset_mac(anairiats_sum_7, tmp521, atslab_0, tmp519) ;
tmp501 = lexbufpos_token_reset_53 (arg0, arg1, tmp521) ;
break ;

/* branch: __ats_lab_71 */
__ats_lab_71_0:
__ats_lab_71_1:
tmp501 = lexbufpos_token_reset_53 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__DOT) ;
break ;
} while (0) ;
return (tmp501) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DOT] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 33020(line=1662, offs=3) -- 33596(line=1679, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_PERCENT (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp522) ;
ATSlocal (ats_int_type, tmp523) ;
ATSlocal (ats_char_type, tmp524) ;
// ATSlocal_void (tmp525) ;
ATSlocal (ats_ptr_type, tmp526) ;
ATSlocal (ats_bool_type, tmp527) ;
ATSlocal (ats_int_type, tmp528) ;
// ATSlocal_void (tmp529) ;
ATSlocal (ats_uint_type, tmp530) ;
ATSlocal (ats_uint_type, tmp531) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_PERCENT:
tmp523 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp524 = atspre_char_of_int (tmp523) ;
do {
/* branch: __ats_lab_72 */
__ats_lab_72_0:
if (tmp524 != '(') { goto __ats_lab_73_0 ; }
__ats_lab_72_1:
/* tmp525 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp526 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_PERCENTLPAREN_172) ;
tmp522 = lexbufpos_token_reset_53 (arg0, arg1, tmp526) ;
break ;

/* branch: __ats_lab_73 */
__ats_lab_73_0:
if (tmp524 != '{') { goto __ats_lab_74_0 ; }
__ats_lab_73_1:
tmp528 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_get_ncol (arg1) ;
tmp527 = atspre_eq_int_int (tmp528, 1) ;
if (!tmp527) { goto __ats_lab_74_1 ; }
/* tmp529 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp522 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_EXTCODE (arg0, arg1) ;
break ;

/* branch: __ats_lab_74 */
__ats_lab_74_0:
__ats_lab_74_1:
tmp530 = testing_symbolicseq0_40 (arg0, arg1) ;
tmp531 = atspre_succ_uint (tmp530) ;
tmp522 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym (arg0, arg1, tmp531) ;
break ;
} while (0) ;
return (tmp522) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_PERCENT] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 33737(line=1689, offs=3) -- 34148(line=1704, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DOLLAR (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp532) ;
ATSlocal (ats_int_type, tmp533) ;
ATSlocal (ats_char_type, tmp534) ;
ATSlocal (ats_bool_type, tmp535) ;
// ATSlocal_void (tmp536) ;
ATSlocal (ats_uint_type, tmp537) ;
ATSlocal (ats_uint_type, tmp538) ;
ATSlocal (ats_uint_type, tmp539) ;
ATSlocal (ats_uint_type, tmp540) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DOLLAR:
tmp533 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp534 = atspre_char_of_int (tmp533) ;
do {
/* branch: __ats_lab_75 */
__ats_lab_75_0:
__ats_lab_75_1:
tmp535 = IDENTFST_test_18 (tmp534) ;
if (!tmp535) { goto __ats_lab_76_1 ; }
/* tmp536 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp537 = testing_identrstseq0_39 (arg0, arg1) ;
tmp538 = atspre_add_uint_uint (tmp537, 2u) ;
tmp532 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_dlr (arg0, arg1, tmp538) ;
break ;

/* branch: __ats_lab_76 */
__ats_lab_76_0:
__ats_lab_76_1:
tmp539 = testing_symbolicseq0_40 (arg0, arg1) ;
tmp540 = atspre_succ_uint (tmp539) ;
tmp532 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym (arg0, arg1, tmp540) ;
break ;
} while (0) ;
return (tmp532) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DOLLAR] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 34286(line=1714, offs=3) -- 34845(line=1739, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_SHARP (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp541) ;
ATSlocal (ats_int_type, tmp542) ;
ATSlocal (ats_char_type, tmp543) ;
// ATSlocal_void (tmp544) ;
ATSlocal (ats_ptr_type, tmp545) ;
ATSlocal (ats_bool_type, tmp546) ;
// ATSlocal_void (tmp547) ;
ATSlocal (ats_uint_type, tmp548) ;
ATSlocal (ats_uint_type, tmp549) ;
ATSlocal (ats_uint_type, tmp550) ;
ATSlocal (ats_uint_type, tmp551) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_SHARP:
tmp542 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp543 = atspre_char_of_int (tmp542) ;
do {
/* branch: __ats_lab_77 */
__ats_lab_77_0:
if (tmp543 != '[') { goto __ats_lab_78_0 ; }
__ats_lab_77_1:
/* tmp544 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp545 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_HASHLBRACKET_167) ;
tmp541 = lexbufpos_token_reset_53 (arg0, arg1, tmp545) ;
break ;

/* branch: __ats_lab_78 */
__ats_lab_78_0:
__ats_lab_78_1:
tmp546 = IDENTFST_test_18 (tmp543) ;
if (!tmp546) { goto __ats_lab_79_1 ; }
/* tmp547 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp548 = testing_identrstseq0_39 (arg0, arg1) ;
tmp549 = atspre_add_uint_uint (tmp548, 2u) ;
tmp541 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_srp (arg0, arg1, tmp549) ;
break ;

/* branch: __ats_lab_79 */
__ats_lab_79_0:
__ats_lab_79_1:
tmp550 = testing_symbolicseq0_40 (arg0, arg1) ;
tmp551 = atspre_succ_uint (tmp550) ;
tmp541 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym (arg0, arg1, tmp551) ;
break ;
} while (0) ;
return (tmp541) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_SHARP] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 34984(line=1749, offs=3) -- 35365(line=1762, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_BQUOTE (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp552) ;
ATSlocal (ats_int_type, tmp553) ;
ATSlocal (ats_char_type, tmp554) ;
// ATSlocal_void (tmp555) ;
ATSlocal (ats_ptr_type, tmp556) ;
ATSlocal (ats_uint_type, tmp557) ;
ATSlocal (ats_uint_type, tmp558) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_BQUOTE:
tmp553 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp554 = atspre_char_of_int (tmp553) ;
do {
/* branch: __ats_lab_80 */
__ats_lab_80_0:
if (tmp554 != '(') { goto __ats_lab_81_0 ; }
__ats_lab_80_1:
/* tmp555 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp556 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BQUOTELPAREN_170) ;
tmp552 = lexbufpos_token_reset_53 (arg0, arg1, tmp556) ;
break ;

/* branch: __ats_lab_81 */
__ats_lab_81_0:
__ats_lab_81_1:
tmp557 = testing_symbolicseq0_40 (arg0, arg1) ;
tmp558 = atspre_succ_uint (tmp557) ;
tmp552 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym (arg0, arg1, tmp558) ;
break ;
} while (0) ;
return (tmp552) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_BQUOTE] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 35965(line=1798, offs=7) -- 36197(line=1807, offs=15)
*/
ATSstaticdec()
ats_int_type
loop_79 (ats_ref_type arg0, ats_uint_type arg1, ats_uint_type arg2, ats_int_type arg3) {
/* local vardec */
ATSlocal (ats_int_type, tmp560) ;
ATSlocal (ats_bool_type, tmp561) ;
ATSlocal (ats_int_type, tmp562) ;
ATSlocal (ats_int_type, tmp563) ;
ATSlocal (ats_int_type, tmp564) ;
ATSlocal (ats_int_type, tmp565) ;
ATSlocal (ats_char_type, tmp566) ;
ATSlocal (ats_uint_type, tmp567) ;
ATSlocal (ats_uint_type, tmp568) ;

__ats_lab_loop_79:
tmp561 = atspre_gt_uint_uint (arg1, 0u) ;
if (tmp561) {
tmp562 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_char (arg0, arg2) ;
tmp564 = atspre_mul_int_int (arg3, 8) ;
tmp566 = atspre_char_of_int (tmp562) ;
tmp565 = atspre_sub_char_char (tmp566, '0') ;
tmp563 = atspre_add_int_int (tmp564, tmp565) ;
tmp567 = atspre_pred_uint (arg1) ;
tmp568 = atspre_succ_uint (arg2) ;
arg0 = arg0 ;
arg1 = tmp567 ;
arg2 = tmp568 ;
arg3 = tmp563 ;
goto __ats_lab_loop_79 ; // tail call
} else {
tmp560 = arg3 ;
} /* end of [if] */
return (tmp560) ;
} /* end of [loop_79] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 35939(line=1797, offs=3) -- 36288(line=1812, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_oct (ats_ref_type arg0, ats_ref_type arg1, ats_uint_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp559) ;
ATSlocal (ats_int_type, tmp569) ;
ATSlocal (ats_char_type, tmp570) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_oct:
tmp569 = loop_79 (arg0, arg2, 2u, 0) ;
tmp570 = atspre_char_of_int (tmp569) ;
tmp559 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_closing (arg0, arg1, tmp570) ;
return (tmp559) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_oct] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 36393(line=1819, offs=7) -- 36635(line=1828, offs=15)
*/
ATSstaticdec()
ats_int_type
loop_81 (ats_ref_type arg0, ats_uint_type arg1, ats_uint_type arg2, ats_int_type arg3) {
/* local vardec */
ATSlocal (ats_int_type, tmp572) ;
ATSlocal (ats_bool_type, tmp573) ;
ATSlocal (ats_int_type, tmp574) ;
ATSlocal (ats_int_type, tmp575) ;
ATSlocal (ats_int_type, tmp576) ;
ATSlocal (ats_int_type, tmp577) ;
ATSlocal (ats_char_type, tmp578) ;
ATSlocal (ats_uint_type, tmp579) ;
ATSlocal (ats_uint_type, tmp580) ;

__ats_lab_loop_81:
tmp573 = atspre_gt_uint_uint (arg1, 0u) ;
if (tmp573) {
tmp574 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_char (arg0, arg2) ;
tmp576 = atspre_mul_int_int (arg3, 16) ;
tmp578 = atspre_char_of_int (tmp574) ;
tmp577 = xdigit_get_val_0 (tmp578) ;
tmp575 = atspre_add_int_int (tmp576, tmp577) ;
tmp579 = atspre_pred_uint (arg1) ;
tmp580 = atspre_succ_uint (arg2) ;
arg0 = arg0 ;
arg1 = tmp579 ;
arg2 = tmp580 ;
arg3 = tmp575 ;
goto __ats_lab_loop_81 ; // tail call
} else {
tmp572 = arg3 ;
} /* end of [if] */
return (tmp572) ;
} /* end of [loop_81] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 36367(line=1818, offs=3) -- 36726(line=1833, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_hex (ats_ref_type arg0, ats_ref_type arg1, ats_uint_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp571) ;
ATSlocal (ats_int_type, tmp581) ;
ATSlocal (ats_char_type, tmp582) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_hex:
tmp581 = loop_81 (arg0, arg2, 3u, 0) ;
tmp582 = atspre_char_of_int (tmp581) ;
tmp571 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_closing (arg0, arg1, tmp582) ;
return (tmp571) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_hex] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 36809(line=1839, offs=3) -- 37688(line=1873, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_special (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp583) ;
ATSlocal (ats_int_type, tmp584) ;
ATSlocal (ats_char_type, tmp585) ;
ATSlocal (ats_bool_type, tmp586) ;
// ATSlocal_void (tmp587) ;
ATSlocal (ats_char_type, tmp588) ;
ATSlocal (ats_bool_type, tmp589) ;
// ATSlocal_void (tmp590) ;
ATSlocal (ats_uint_type, tmp591) ;
ATSlocal (ats_bool_type, tmp592) ;
ATSlocal (ats_bool_type, tmp593) ;
ATSlocal (ats_bool_type, tmp594) ;
ATSlocal (ats_ptr_type, tmp595) ;
ATSlocal (ats_uint_type, tmp596) ;
ATSlocal (ats_bool_type, tmp597) ;
ATSlocal (ats_bool_type, tmp598) ;
ATSlocal (ats_bool_type, tmp599) ;
ATSlocal (ats_ptr_type, tmp600) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_special:
tmp584 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp585 = atspre_char_of_int (tmp584) ;
do {
/* branch: __ats_lab_82 */
__ats_lab_82_0:
__ats_lab_82_1:
tmp586 = ESCHAR_test_29 (tmp585) ;
if (!tmp586) { goto __ats_lab_83_1 ; }
/* tmp587 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp588 = char_for_escaped_1 (tmp585) ;
tmp583 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_closing (arg0, arg1, tmp588) ;
break ;

/* branch: __ats_lab_83 */
__ats_lab_83_0:
__ats_lab_83_1:
tmp589 = xX_test_21 (tmp585) ;
if (!tmp589) { goto __ats_lab_84_1 ; }
/* tmp590 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp591 = testing_xdigitseq0_45 (arg0, arg1) ;
tmp593 = atspre_eq_uint_uint (tmp591, 0u) ;
tmp594 = atspre_gt_uint_uint (tmp591, 2u) ;
tmp592 = atspre_add_bool_bool (tmp593, tmp594) ;
if (tmp592) {
tmp595 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_hex_1) ;
tmp583 = lexbufpos_lexerr_reset_54 (arg0, arg1, tmp595) ;
} else {
tmp583 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_hex (arg0, arg1, tmp591) ;
} /* end of [if] */
break ;

/* branch: __ats_lab_84 */
__ats_lab_84_0:
__ats_lab_84_1:
tmp596 = testing_octalseq0_41 (arg0, arg1) ;
tmp598 = atspre_eq_uint_uint (tmp596, 0u) ;
tmp599 = atspre_gt_uint_uint (tmp596, 3u) ;
tmp597 = atspre_add_bool_bool (tmp598, tmp599) ;
if (tmp597) {
tmp600 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_oct_0) ;
tmp583 = lexbufpos_lexerr_reset_54 (arg0, arg1, tmp600) ;
} else {
tmp583 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_oct (arg0, arg1, tmp596) ;
} /* end of [if] */
break ;
} while (0) ;
return (tmp583) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_special] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 37775(line=1879, offs=3) -- 37991(line=1886, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_closing (ats_ref_type arg0, ats_ref_type arg1, ats_char_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp601) ;
ATSlocal (ats_int_type, tmp602) ;
ATSlocal (ats_bool_type, tmp603) ;
ATSlocal (ats_ptr_type, tmp604) ;
ATSlocal (ats_ptr_type, tmp605) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_closing:
tmp602 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_litchar (arg0, arg1, '\'') ;
tmp603 = atspre_gte_int_int (tmp602, 0) ;
if (tmp603) {
tmp604 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp604)->tag = 151 ;
ats_selptrset_mac(anairiats_sum_3, tmp604, atslab_0, arg2) ;
tmp601 = lexbufpos_token_reset_53 (arg0, arg1, tmp604) ;
} else {
tmp605 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_CHAR_unclose_2) ;
tmp601 = lexbufpos_lexerr_reset_54 (arg0, arg1, tmp605) ;
} /* end of [if] */
return (tmp601) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_closing] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 38071(line=1892, offs=3) -- 38640(line=1921, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_QUOTE (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp606) ;
ATSlocal (ats_int_type, tmp607) ;
ATSlocal (ats_bool_type, tmp608) ;
ATSlocal (ats_char_type, tmp609) ;
// ATSlocal_void (tmp610) ;
ATSlocal (ats_ptr_type, tmp611) ;
ATSlocal (ats_ptr_type, tmp612) ;
ATSlocal (ats_ptr_type, tmp613) ;
ATSlocal (ats_bool_type, tmp614) ;
ATSlocal (ats_ptr_type, tmp615) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_QUOTE:
tmp607 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp608 = atspre_gte_int_int (tmp607, 0) ;
if (tmp608) {
tmp609 = atspre_char_of_int (tmp607) ;
/* tmp610 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
do {
/* branch: __ats_lab_85 */
__ats_lab_85_0:
if (tmp609 != '(') { goto __ats_lab_86_0 ; }
__ats_lab_85_1:
tmp611 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELPAREN_164) ;
tmp606 = lexbufpos_token_reset_53 (arg0, arg1, tmp611) ;
break ;

/* branch: __ats_lab_86 */
__ats_lab_86_0:
if (tmp609 != '[') { goto __ats_lab_87_0 ; }
__ats_lab_86_1:
tmp612 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELBRACKET_166) ;
tmp606 = lexbufpos_token_reset_53 (arg0, arg1, tmp612) ;
break ;

/* branch: __ats_lab_87 */
__ats_lab_87_0:
if (tmp609 != '{') { goto __ats_lab_88_0 ; }
__ats_lab_87_1:
tmp613 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_QUOTELBRACE_169) ;
tmp606 = lexbufpos_token_reset_53 (arg0, arg1, tmp613) ;
break ;

/* branch: __ats_lab_88 */
__ats_lab_88_0:
__ats_lab_88_1:
tmp614 = atspre_eq_char_char (tmp609, '\\') ;
if (!tmp614) { goto __ats_lab_89_1 ; }
tmp606 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_special (arg0, arg1) ;
break ;

/* branch: __ats_lab_89 */
__ats_lab_89_0:
__ats_lab_89_1:
tmp606 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_char_closing (arg0, arg1, tmp609) ;
break ;
} while (0) ;
} else {
tmp615 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_QUOTE_dangling_3) ;
tmp606 = lexbufpos_lexerr_reset_54 (arg0, arg1, tmp615) ;
} /* end of [if] */
return (tmp606) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_QUOTE] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 39075(line=1948, offs=7) -- 39488(line=1966, offs=15)
*/
ATSstaticdec()
ats_int_type
loop_86 (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_int_type arg3) {
/* local vardec */
ATSlocal (ats_int_type, tmp617) ;
ATSlocal (ats_bool_type, tmp618) ;
ATSlocal (ats_int_type, tmp619) ;
ATSlocal (ats_char_type, tmp620) ;
ATSlocal (ats_bool_type, tmp621) ;
// ATSlocal_void (tmp622) ;
ATSlocal (ats_int_type, tmp623) ;
ATSlocal (ats_int_type, tmp624) ;
ATSlocal (ats_int_type, tmp625) ;
ATSlocal (ats_int_type, tmp626) ;

__ats_lab_loop_86:
tmp618 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), 0) ;
if (tmp618) {
tmp619 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp620 = atspre_char_of_int (tmp619) ;
do {
/* branch: __ats_lab_90 */
__ats_lab_90_0:
__ats_lab_90_1:
tmp621 = DIGIT_test_22 (tmp620) ;
if (!tmp621) { goto __ats_lab_91_1 ; }
/* tmp622 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp623 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp623 ;
tmp625 = atspre_mul_int_int (8, arg3) ;
tmp626 = atspre_sub_char_char (tmp620, '0') ;
tmp624 = atspre_add_int_int (tmp625, tmp626) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp624 ;
goto __ats_lab_loop_86 ; // tail call
break ;

/* branch: __ats_lab_91 */
__ats_lab_91_0:
__ats_lab_91_1:
tmp617 = arg3 ;
break ;
} while (0) ;
} else {
tmp617 = arg3 ;
} /* end of [if] */
return (tmp617) ;
} /* end of [loop_86] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 38999(line=1944, offs=1) -- 39814(line=1979, offs=4)
*/
ATSstaticdec()
ats_int_type
lexing_string_char_oct_85 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp616) ;
ATSlocal (ats_int_type, tmp627) ;
ATSlocal (ats_int_type, tmp628) ;
// ATSlocal_void (tmp629) ;
ATSlocal (ats_bool_type, tmp630) ;
ATSlocal (ats_ptr_type, tmp631) ;
ATSlocal (ats_ptr_type, tmp632) ;
ATSlocal (ats_ptr_type, tmp633) ;

__ats_lab_lexing_string_char_oct_85:
/* ats_int_type tmp627 ; */
tmp627 = 3 ;
tmp628 = loop_86 (arg0, arg1, (&tmp627), 0) ;
tmp630 = atspre_eq_int_int (tmp627, 3) ;
if (tmp630) {
tmp631 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_make_pos_pos (ats_ptrget_mac(pats_position_struct, arg1), ats_ptrget_mac(pats_position_struct, arg1)) ;
tmp633 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_char_oct_5) ;
tmp632 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp631, tmp633) ;
/* tmp629 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp632) ;
} else {
/* empty */
} /* end of [if] */
tmp616 = tmp628 ;
return (tmp616) ;
} /* end of [lexing_string_char_oct_85] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 39952(line=1988, offs=7) -- 40378(line=2006, offs=15)
*/
ATSstaticdec()
ats_int_type
loop_88 (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_int_type arg3) {
/* local vardec */
ATSlocal (ats_int_type, tmp635) ;
ATSlocal (ats_bool_type, tmp636) ;
ATSlocal (ats_int_type, tmp637) ;
ATSlocal (ats_char_type, tmp638) ;
ATSlocal (ats_bool_type, tmp639) ;
// ATSlocal_void (tmp640) ;
ATSlocal (ats_int_type, tmp641) ;
ATSlocal (ats_int_type, tmp642) ;
ATSlocal (ats_int_type, tmp643) ;
ATSlocal (ats_int_type, tmp644) ;

__ats_lab_loop_88:
tmp636 = atspre_gt_int_int (ats_ptrget_mac(ats_int_type, arg2), 0) ;
if (tmp636) {
tmp637 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp638 = atspre_char_of_int (tmp637) ;
do {
/* branch: __ats_lab_92 */
__ats_lab_92_0:
__ats_lab_92_1:
tmp639 = XDIGIT_test_23 (tmp638) ;
if (!tmp639) { goto __ats_lab_93_1 ; }
/* tmp640 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp641 = atspre_sub_int_int (ats_ptrget_mac(ats_int_type, arg2), 1) ;
ats_ptrget_mac(ats_int_type, arg2) = tmp641 ;
tmp643 = atspre_mul_int_int (16, arg3) ;
tmp644 = xdigit_get_val_0 (tmp638) ;
tmp642 = atspre_add_int_int (tmp643, tmp644) ;
arg0 = arg0 ;
arg1 = arg1 ;
arg2 = arg2 ;
arg3 = tmp642 ;
goto __ats_lab_loop_88 ; // tail call
break ;

/* branch: __ats_lab_93 */
__ats_lab_93_0:
__ats_lab_93_1:
tmp635 = arg3 ;
break ;
} while (0) ;
} else {
tmp635 = arg3 ;
} /* end of [if] */
return (tmp635) ;
} /* end of [loop_88] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 39876(line=1984, offs=1) -- 40693(line=2019, offs=4)
*/
ATSstaticdec()
ats_int_type
lexing_string_char_hex_87 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_int_type, tmp634) ;
ATSlocal (ats_int_type, tmp645) ;
ATSlocal (ats_int_type, tmp646) ;
// ATSlocal_void (tmp647) ;
ATSlocal (ats_bool_type, tmp648) ;
ATSlocal (ats_ptr_type, tmp649) ;
ATSlocal (ats_ptr_type, tmp650) ;
ATSlocal (ats_ptr_type, tmp651) ;

__ats_lab_lexing_string_char_hex_87:
/* ats_int_type tmp645 ; */
tmp645 = 2 ;
tmp646 = loop_88 (arg0, arg1, (&tmp645), 0) ;
tmp648 = atspre_eq_int_int (tmp645, 2) ;
if (tmp648) {
tmp649 = _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__location_make_pos_pos (ats_ptrget_mac(pats_position_struct, arg1), ats_ptrget_mac(pats_position_struct, arg1)) ;
tmp651 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_char_hex_6) ;
tmp650 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp649, tmp651) ;
/* tmp647 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp650) ;
} else {
/* empty */
} /* end of [if] */
tmp634 = tmp646 ;
return (tmp634) ;
} /* end of [lexing_string_char_hex_87] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 40755(line=2024, offs=1) -- 41406(line=2051, offs=4)
*/
ATSstaticdec()
ats_int_type
lexing_string_char_special_89 (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2) {
/* local vardec */
ATSlocal (ats_int_type, tmp652) ;
ATSlocal (ats_int_type, tmp653) ;
ATSlocal (ats_bool_type, tmp654) ;
ATSlocal (ats_char_type, tmp655) ;
// ATSlocal_void (tmp656) ;
ATSlocal (ats_bool_type, tmp657) ;
// ATSlocal_void (tmp658) ;
ATSlocal (ats_char_type, tmp659) ;
ATSlocal (ats_bool_type, tmp660) ;
// ATSlocal_void (tmp661) ;

__ats_lab_lexing_string_char_special_89:
tmp653 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp654 = atspre_gte_int_int (tmp653, 0) ;
if (tmp654) {
tmp655 = atspre_char_of_int (tmp653) ;
do {
/* branch: __ats_lab_94 */
__ats_lab_94_0:
if (tmp655 != '\n') { goto __ats_lab_95_0 ; }
__ats_lab_94_1:
ats_ptrget_mac(ats_int_type, arg2) = 1 ;
/* tmp656 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char (arg1, tmp653) ;
tmp652 = 0 ;
break ;

/* branch: __ats_lab_95 */
__ats_lab_95_0:
__ats_lab_95_1:
tmp657 = ESCHAR_test_29 (tmp655) ;
if (!tmp657) { goto __ats_lab_96_1 ; }
/* tmp658 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp659 = char_for_escaped_1 (tmp655) ;
tmp652 = atspre_int_of_char (tmp659) ;
break ;

/* branch: __ats_lab_96 */
__ats_lab_96_0:
__ats_lab_96_1:
tmp660 = xX_test_21 (tmp655) ;
if (!tmp660) { goto __ats_lab_97_1 ; }
/* tmp661 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp652 = lexing_string_char_hex_87 (arg0, arg1) ;
break ;

/* branch: __ats_lab_97 */
__ats_lab_97_0:
__ats_lab_97_1:
tmp652 = lexing_string_char_oct_85 (arg0, arg1) ;
break ;
} while (0) ;
} else {
tmp652 = 0 ;
} /* end of [if] */
return (tmp652) ;
} /* end of [lexing_string_char_special_89] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 41520(line=2060, offs=1) -- 41720(line=2068, offs=4)
*/
ATSstaticdec()
ats_void_type
regerr_91 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
// ATSlocal_void (tmp663) ;
ATSlocal (ats_ptr_type, tmp664) ;
ATSlocal (ats_ptr_type, tmp665) ;
ATSlocal (ats_ptr_type, tmp666) ;

__ats_lab_regerr_91:
tmp664 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, arg1) ;
tmp666 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_STRING_unclose_4) ;
tmp665 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp664, tmp666) ;
/* tmp663 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp665) ;
return /* (tmp663) */ ;
} /* end of [regerr_91] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 41747(line=2071, offs=1) -- 42528(line=2107, offs=4)
*/
ATSstaticdec()
ats_size_type
loop_92 (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_size_type arg3, ats_size_type arg4) {
/* local vardec */
ATSlocal (ats_size_type, tmp717) ;

tmp717 = loop_92_0loop_ins_93 (0, arg0, arg1, arg2, arg3, arg4) ;
return (tmp717) ;
} /* end of [loop_92] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 4302(line=161, offs=29) -- 4599(line=171, offs=4)
*/
ATSstaticdec()
ats_ptr_type
DEQUEptrnxt_02425_ats_uchar_type (ats_ref_type arg0, ats_ptr_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp695) ;
ATSlocal (ats_ptr_type, tmp696) ;
ATSlocal (ats_bool_type, tmp698) ;
ATSlocal (ats_ptr_type, tmp699) ;
ATSlocal (ats_ptr_type, tmp700) ;

__ats_lab_DEQUEptrnxt_02425_ats_uchar_type:
/* ats_ptr_type tmp696 ; */
tmp696 = atspre_padd_size (arg1, sizeof(ats_uchar_type)) ;
tmp699 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_rgt) ;
tmp698 = atspre_pgte (tmp696, tmp699) ;
if (tmp698) {
tmp700 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_lft) ;
tmp696 = tmp700 ;
} else {
/* empty */
} /* end of [if] */
tmp695 = tmp696 ;
return (tmp695) ;
} /* end of [DEQUEptrnxt_02425_ats_uchar_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 8755(line=344, offs=18) -- 9091(line=357, offs=4)
*/
ATSstaticdec()
ats_void_type
deque_insert_end_02406_ats_uchar_type (ats_ref_type arg0, ats_uchar_type arg1) {
/* local vardec */
// ATSlocal_void (tmp692) ;
ATSlocal (ats_ptr_type, tmp693) ;
ATSlocal (ats_ptr_type, tmp694) ;
ATSlocal (ats_ptr_type, tmp701) ;
ATSlocal (ats_size_type, tmp702) ;
ATSlocal (ats_size_type, tmp703) ;

__ats_lab_deque_insert_end_02406_ats_uchar_type:
tmp693 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_end) ;
tmp694 = DEQUEptrnxt_02425_ats_uchar_type (arg0, tmp693) ;
tmp701 = ats_selsin_mac(tmp694, atslab_1) ;
ats_ptrget_mac(ats_uchar_type, tmp693) = arg1 ;
tmp703 = ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) ;
tmp702 = atspre_add_size1_int1 (tmp703, 1) ;
ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), nitm) = tmp702 ;
ats_select_mac(ats_ptrget_mac(atslib_ngc_deque_arr_DEQUE, arg0), qarr_end) = tmp701 ;
return /* (tmp692) */ ;
} /* end of [deque_insert_end_02406_ats_uchar_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 3481(line=127, offs=3) -- 3517(line=127, offs=39)
*/
ATSstaticdec()
ats_void_type
queue_insert_01913_ats_uchar_type (ats_ref_type arg0, ats_uchar_type arg1) {
/* local vardec */
// ATSlocal_void (tmp691) ;

__ats_lab_queue_insert_01913_ats_uchar_type:
/* tmp691 = */ deque_insert_end_02406_ats_uchar_type (arg0, arg1) ;
return /* (tmp691) */ ;
} /* end of [queue_insert_01913_ats_uchar_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/prelude/DATS/array.dats: 3612(line=123, offs=17) -- 3660(line=123, offs=65)
*/
ATSstaticdec()
ats_ptr_type
array_ptr_alloc_01563_ats_uchar_type (ats_size_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp709) ;

__ats_lab_array_ptr_alloc_01563_ats_uchar_type:
tmp709 = atspre_array_ptr_alloc_tsz (arg0, sizeof(ats_uchar_type)) ;
return (tmp709) ;
} /* end of [array_ptr_alloc_01563_ats_uchar_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 13207(line=513, offs=23) -- 13311(line=516, offs=71)
*/
ATSstaticdec()
ats_ptr_type
deque_update_capacity_02418_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp712) ;

__ats_lab_deque_update_capacity_02418_ats_uchar_type:
tmp712 = atslib_ngc_deque_arr_deque_update_capacity_tsz (arg0, arg1, arg2, sizeof(ats_uchar_type)) ;
return (tmp712) ;
} /* end of [deque_update_capacity_02418_ats_uchar_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 4205(line=166, offs=3) -- 4422(line=171, offs=2)
*/
ATSstaticdec()
ats_void_type
queue_update_capacity_01920_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1) {
/* local vardec */
// ATSlocal_void (tmp707) ;
ATSlocal (ats_ptr_type, tmp708) ;
ATSlocal (ats_ptr_type, tmp710) ;
ATSlocal (ats_ptr_type, tmp711) ;
ATSlocal (ats_ptr_type, tmp713) ;

__ats_lab_queue_update_capacity_01920_ats_uchar_type:
tmp708 = array_ptr_alloc_01563_ats_uchar_type (arg1) ;
tmp710 = ats_selsin_mac(tmp708, atslab_2) ;
tmp711 = deque_update_capacity_02418_ats_uchar_type (arg0, arg1, tmp710) ;
tmp713 = ats_selsin_mac(tmp711, atslab_2) ;
/* tmp707 = */ atspre_array_ptr_free (tmp713) ;
return /* (tmp707) */ ;
} /* end of [queue_update_capacity_01920_ats_uchar_type] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 42553(line=2110, offs=1) -- 43197(line=2139, offs=4)
*/
ATSstaticdec()
ats_size_type
loop_ins_93 (ats_ref_type arg0, ats_ref_type arg1, ats_ref_type arg2, ats_size_type arg3, ats_size_type arg4, ats_int_type arg5) {
/* local vardec */
ATSlocal (ats_size_type, tmp718) ;

tmp718 = loop_92_0loop_ins_93 (1, arg0, arg1, arg2, arg3, arg4, arg5) ;
return (tmp718) ;
} /* end of [loop_ins_93] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 41747(line=2071, offs=1) -- 43197(line=2139, offs=4)
*/
ATSstaticdec()
ats_size_type
loop_92_0loop_ins_93 (ats_int_type arg0, ...) {
/* local vardec */
ATSlocal (ats_ref_type, tmp667) ;
ATSlocal (ats_ref_type, tmp668) ;
ATSlocal (ats_ref_type, tmp669) ;
ATSlocal (ats_size_type, tmp670) ;
ATSlocal (ats_size_type, tmp671) ;
ATSlocal (ats_ref_type, tmp672) ;
ATSlocal (ats_ref_type, tmp673) ;
ATSlocal (ats_ref_type, tmp674) ;
ATSlocal (ats_size_type, tmp675) ;
ATSlocal (ats_size_type, tmp676) ;
ATSlocal (ats_int_type, tmp677) ;
ATSlocal (ats_size_type, tmp678) ;
ATSlocal (ats_int_type, tmp679) ;
ATSlocal (ats_bool_type, tmp680) ;
ATSlocal (ats_char_type, tmp681) ;
// ATSlocal_void (tmp682) ;
ATSlocal (ats_int_type, tmp683) ;
ATSlocal (ats_int_type, tmp684) ;
ATSlocal (ats_bool_type, tmp685) ;
// ATSlocal_void (tmp686) ;
ATSlocal (ats_size_type, tmp687) ;
ATSlocal (ats_uchar_type, tmp688) ;
ATSlocal (ats_bool_type, tmp689) ;
// ATSlocal_void (tmp690) ;
ATSlocal (ats_size_type, tmp704) ;
ATSlocal (ats_size_type, tmp705) ;
// ATSlocal_void (tmp706) ;
// ATSlocal_void (tmp714) ;
ATSlocal (ats_size_type, tmp715) ;
ATSlocal (ats_size_type, tmp716) ;

va_list funarg ;

switch (arg0) {
case 0:
va_start(funarg, arg0) ;
tmp667 = va_arg(funarg, ats_ref_type) ;
tmp668 = va_arg(funarg, ats_ref_type) ;
tmp669 = va_arg(funarg, ats_ref_type) ;
tmp670 = va_arg(funarg, ats_size_type) ;
tmp671 = va_arg(funarg, ats_size_type) ;
va_end(funarg) ;
goto __ats_lab_loop_92 ;

case 1:
va_start(funarg, arg0) ;
tmp672 = va_arg(funarg, ats_ref_type) ;
tmp673 = va_arg(funarg, ats_ref_type) ;
tmp674 = va_arg(funarg, ats_ref_type) ;
tmp675 = va_arg(funarg, ats_size_type) ;
tmp676 = va_arg(funarg, ats_size_type) ;
tmp677 = va_arg(funarg, ats_int_type) ;
va_end(funarg) ;
goto __ats_lab_loop_ins_93 ;

default: exit(1) ; /* deadcode */
} /* end of switch */

ATSlocal (va_list, arg1) ;
va_start(arg1, arg0) ;

__ats_lab_loop_92:
tmp679 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (tmp667, tmp668) ;
tmp680 = atspre_gte_int_int (tmp679, 0) ;
if (tmp680) {
tmp681 = atspre_char_of_int (tmp679) ;
/* tmp682 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char (tmp668, tmp679) ;
do {
/* branch: __ats_lab_98 */
__ats_lab_98_0:
if (tmp681 != '"') { goto __ats_lab_99_0 ; }
__ats_lab_98_1:
tmp678 = tmp671 ;
break ;

/* branch: __ats_lab_99 */
__ats_lab_99_0:
if (tmp681 != '\\') { goto __ats_lab_100_0 ; }
__ats_lab_99_1:
/* ats_int_type tmp683 ; */
tmp683 = 0 ;
tmp684 = lexing_string_char_special_89 (tmp667, tmp668, (&tmp683)) ;
tmp685 = atspre_eq_int_int (tmp683, 1) ;
if (tmp685) {
tmp667 = tmp667 ;
tmp668 = tmp668 ;
tmp669 = tmp669 ;
tmp670 = tmp670 ;
tmp671 = tmp671 ;
goto __ats_lab_loop_92 ; // tail call
} else {
tmp672 = tmp667 ;
tmp673 = tmp668 ;
tmp674 = tmp669 ;
tmp675 = tmp670 ;
tmp676 = tmp671 ;
tmp677 = tmp684 ;
goto __ats_lab_loop_ins_93 ; // tail call
} /* end of [if] */
break ;

/* branch: __ats_lab_100 */
__ats_lab_100_0:
__ats_lab_100_1:
tmp672 = tmp667 ;
tmp673 = tmp668 ;
tmp674 = tmp669 ;
tmp675 = tmp670 ;
tmp676 = tmp671 ;
tmp677 = tmp679 ;
goto __ats_lab_loop_ins_93 ; // tail call
break ;
} while (0) ;
} else {
/* tmp686 = */ regerr_91 (tmp667, tmp668) ;
tmp678 = ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__queue_size (tmp669) ;
} /* end of [if] */
return tmp678 ;

__ats_lab_loop_ins_93:
tmp688 = atspre_uchar_of_int (tmp677) ;
do {
/* branch: __ats_lab_101 */
__ats_lab_101_0:
__ats_lab_101_1:
tmp689 = atspre_gt_size1_size1 (tmp675, tmp676) ;
if (!tmp689) { goto __ats_lab_102_1 ; }
/* tmp690 = */ queue_insert_01913_ats_uchar_type (tmp674, tmp688) ;
tmp704 = atspre_add_size1_int1 (tmp676, 1) ;
tmp667 = tmp672 ;
tmp668 = tmp673 ;
tmp669 = tmp674 ;
tmp670 = tmp675 ;
tmp671 = tmp704 ;
goto __ats_lab_loop_92 ; // tail call
break ;

/* branch: __ats_lab_102 */
__ats_lab_102_0:
__ats_lab_102_1:
tmp705 = atspre_add_size1_size1 (tmp675, tmp675) ;
/* tmp706 = */ queue_update_capacity_01920_ats_uchar_type (tmp674, tmp705) ;
/* tmp714 = */ queue_insert_01913_ats_uchar_type (tmp674, tmp688) ;
tmp715 = atspre_add_size1_int1 (tmp676, 1) ;
tmp667 = tmp672 ;
tmp668 = tmp673 ;
tmp669 = tmp674 ;
tmp670 = tmp705 ;
tmp671 = tmp715 ;
goto __ats_lab_loop_92 ; // tail call
break ;
} while (0) ;
return tmp687 ;

return (tmp716) ;
} /* end of [loop_92_0loop_ins_93] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/ngc/DATS/deque_arr.dats: 5421(line=211, offs=22) -- 5522(line=214, offs=69)
*/
ATSstaticdec()
ats_void_type
deque_initialize_02398_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1, ats_ptr_type arg2) {
/* local vardec */
// ATSlocal_void (tmp724) ;

__ats_lab_deque_initialize_02398_ats_uchar_type:
/* tmp724 = */ atslib_ngc_deque_arr_deque_initialize_tsz (arg0, arg1, arg2, sizeof(ats_uchar_type)) ;
return /* (tmp724) */ ;
} /* end of [deque_initialize_02398_ats_uchar_type] */

/*
// /nix/store/rfja8ixrs5wb4kj3kiwlch1apnh7qgvy-ats-0.2.12/lib/ats-anairiats-0.2.12/libats/DATS/linqueue_arr.dats: 2304(line=77, offs=3) -- 2428(line=81, offs=4)
*/
ATSstaticdec()
ats_void_type
queue_initialize_01907_ats_uchar_type (ats_ref_type arg0, ats_size_type arg1) {
/* local vardec */
// ATSlocal_void (tmp721) ;
ATSlocal (ats_ptr_type, tmp722) ;
ATSlocal (ats_ptr_type, tmp723) ;

__ats_lab_queue_initialize_01907_ats_uchar_type:
tmp722 = array_ptr_alloc_01563_ats_uchar_type (arg1) ;
tmp723 = ats_selsin_mac(tmp722, atslab_2) ;
/* tmp721 = */ deque_initialize_02398_ats_uchar_type (arg0, arg1, tmp723) ;
return /* (tmp721) */ ;
} /* end of [queue_initialize_01907_ats_uchar_type] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 41497(line=2057, offs=3) -- 43529(line=2153, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DQUOTE (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp662) ;
ATSlocal (atslib_linqueue_arr_QUEUE, tmp719) ;
// ATSlocal_void (tmp720) ;
ATSlocal (ats_size_type, tmp725) ;
ATSlocal (ats_ptr_type, tmp726) ;
// ATSlocal_void (tmp727) ;
ATSlocal (ats_ptr_type, tmp728) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DQUOTE:
/* atslib_linqueue_arr_QUEUE tmp719 ; */
/* tmp720 = */ queue_initialize_01907_ats_uchar_type ((&tmp719), 128) ;
tmp725 = loop_92 (arg0, arg1, (&tmp719), 128, 0) ;
tmp726 = _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__queue_get_strptr1 ((&tmp719), 0, tmp725) ;
/* tmp727 = */ atslib_linqueue_arr_queue_uninitialize ((&tmp719)) ;
tmp728 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp728)->tag = 154 ;
ats_selptrset_mac(anairiats_sum_8, tmp728, atslab_0, ats_castfn_mac(ats_ptr_type, tmp726)) ;
tmp662 = lexbufpos_token_reset_53 (arg0, arg1, tmp728) ;
return (tmp662) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DQUOTE] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 43605(line=2160, offs=1) -- 43929(line=2174, offs=4)
*/
ATSstaticdec()
ats_ptr_type
lexing_postfix_103 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_char_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp729) ;
ATSlocal (ats_int_type, tmp730) ;
ATSlocal (ats_bool_type, tmp731) ;
ATSlocal (ats_char_type, tmp732) ;
// ATSlocal_void (tmp733) ;

__ats_lab_lexing_postfix_103:
tmp730 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
do {
/* branch: __ats_lab_103 */
__ats_lab_103_0:
__ats_lab_103_1:
tmp732 = atspre_char_of_int (tmp730) ;
tmp731 = atspre_eq_char_char (arg4, tmp732) ;
if (!tmp731) { goto __ats_lab_104_1 ; }
/* tmp733 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp729 = lexbufpos_token_reset_53 (arg0, arg1, arg3) ;
break ;

/* branch: __ats_lab_104 */
__ats_lab_104_0:
__ats_lab_104_1:
tmp729 = lexbufpos_token_reset_53 (arg0, arg1, arg2) ;
break ;
} while (0) ;
return (tmp729) ;
} /* end of [lexing_postfix_103] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 43983(line=2179, offs=1) -- 44408(line=2196, offs=4)
*/
ATSstaticdec()
ats_ptr_type
lexing_polarity_104 (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2, ats_ptr_type arg3, ats_ptr_type arg4) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp734) ;
ATSlocal (ats_int_type, tmp735) ;
ATSlocal (ats_char_type, tmp736) ;
// ATSlocal_void (tmp737) ;
// ATSlocal_void (tmp738) ;

__ats_lab_lexing_polarity_104:
tmp735 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp736 = atspre_char_of_int (tmp735) ;
do {
/* branch: __ats_lab_105 */
__ats_lab_105_0:
if (tmp736 != '+') { goto __ats_lab_106_0 ; }
__ats_lab_105_1:
/* tmp737 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp734 = lexbufpos_token_reset_53 (arg0, arg1, arg3) ;
break ;

/* branch: __ats_lab_106 */
__ats_lab_106_0:
if (tmp736 != '-') { goto __ats_lab_107_0 ; }
__ats_lab_106_1:
/* tmp738 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp734 = lexbufpos_token_reset_53 (arg0, arg1, arg4) ;
break ;

/* branch: __ats_lab_107 */
__ats_lab_107_0:
__ats_lab_107_1:
tmp734 = lexbufpos_token_reset_53 (arg0, arg1, arg2) ;
break ;
} while (0) ;
return (tmp734) ;
} /* end of [lexing_polarity_104] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 44465(line=2201, offs=1) -- 44565(line=2204, offs=57)
*/
ATSstaticdec()
ats_ptr_type
lexing_FOR_105 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp739) ;

__ats_lab_lexing_FOR_105:
tmp739 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOR, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FORSTAR, '*') ;
return (tmp739) ;
} /* end of [lexing_FOR_105] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 44573(line=2207, offs=1) -- 44679(line=2210, offs=61)
*/
ATSstaticdec()
ats_ptr_type
lexing_WHILE_106 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp740) ;

__ats_lab_lexing_WHILE_106:
tmp740 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WHILE, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__WHILESTAR, '*') ;
return (tmp740) ;
} /* end of [lexing_WHILE_106] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 44708(line=2215, offs=1) -- 44819(line=2219, offs=55)
*/
ATSstaticdec()
ats_ptr_type
lexing_CASE_107 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp741) ;

__ats_lab_lexing_CASE_107:
tmp741 = lexing_polarity_104 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE_pos, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__CASE_neg) ;
return (tmp741) ;
} /* end of [lexing_CASE_107] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 44849(line=2222, offs=5) -- 44956(line=2226, offs=52)
*/
ATSstaticdec()
ats_ptr_type
lexing_VAL_108 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp742) ;

__ats_lab_lexing_VAL_108:
tmp742 = lexing_polarity_104 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL_pos, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VAL_neg) ;
return (tmp742) ;
} /* end of [lexing_VAL_108] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 45006(line=2232, offs=1) -- 45117(line=2236, offs=55)
*/
ATSstaticdec()
ats_ptr_type
lexing_TYPE_109 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp743) ;

__ats_lab_lexing_TYPE_109:
tmp743 = lexing_polarity_104 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE_pos, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE_neg) ;
return (tmp743) ;
} /* end of [lexing_TYPE_109] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 45146(line=2239, offs=1) -- 45257(line=2243, offs=55)
*/
ATSstaticdec()
ats_ptr_type
lexing_TBOX_110 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp744) ;

__ats_lab_lexing_TBOX_110:
tmp744 = lexing_polarity_104 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TBOX, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE_pos, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TYPE_neg) ;
return (tmp744) ;
} /* end of [lexing_TBOX_110] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 45286(line=2246, offs=1) -- 45399(line=2250, offs=57)
*/
ATSstaticdec()
ats_ptr_type
lexing_TFLT_111 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp745) ;

__ats_lab_lexing_TFLT_111:
tmp745 = lexing_polarity_104 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__TFLT, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE_pos, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE_neg) ;
return (tmp745) ;
} /* end of [lexing_TFLT_111] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 45431(line=2254, offs=1) -- 45546(line=2258, offs=58)
*/
ATSstaticdec()
ats_ptr_type
lexing_T0YPE_112 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp746) ;

__ats_lab_lexing_T0YPE_112:
tmp746 = lexing_polarity_104 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE_pos, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T0YPE_neg) ;
return (tmp746) ;
} /* end of [lexing_T0YPE_112] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 45754(line=2274, offs=1) -- 45865(line=2278, offs=55)
*/
ATSstaticdec()
ats_ptr_type
lexing_PROP_113 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp747) ;

__ats_lab_lexing_PROP_113:
tmp747 = lexing_polarity_104 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP_pos, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__PROP_neg) ;
return (tmp747) ;
} /* end of [lexing_PROP_113] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 45897(line=2282, offs=1) -- 46386(line=2302, offs=4)
*/
ATSstaticdec()
ats_ptr_type
lexing_VIEW_114 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp748) ;
ATSlocal (ats_int_type, tmp749) ;
ATSlocal (ats_char_type, tmp750) ;
// ATSlocal_void (tmp751) ;
// ATSlocal_void (tmp752) ;
// ATSlocal_void (tmp753) ;

__ats_lab_lexing_VIEW_114:
tmp749 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp750 = atspre_char_of_int (tmp749) ;
do {
/* branch: __ats_lab_108 */
__ats_lab_108_0:
if (tmp750 != '@') { goto __ats_lab_109_0 ; }
__ats_lab_108_1:
/* tmp751 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp748 = lexbufpos_token_reset_53 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWAT) ;
break ;

/* branch: __ats_lab_109 */
__ats_lab_109_0:
if (tmp750 != '+') { goto __ats_lab_110_0 ; }
__ats_lab_109_1:
/* tmp752 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp748 = lexbufpos_token_reset_53 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW_pos) ;
break ;

/* branch: __ats_lab_110 */
__ats_lab_110_0:
if (tmp750 != '-') { goto __ats_lab_111_0 ; }
__ats_lab_110_1:
/* tmp753 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp748 = lexbufpos_token_reset_53 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW_neg) ;
break ;

/* branch: __ats_lab_111 */
__ats_lab_111_0:
__ats_lab_111_1:
tmp748 = lexbufpos_token_reset_53 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEW) ;
break ;
} while (0) ;
return (tmp748) ;
} /* end of [lexing_VIEW_114] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 46418(line=2305, offs=1) -- 46539(line=2309, offs=64)
*/
ATSstaticdec()
ats_ptr_type
lexing_VTYPE_115 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp754) ;

__ats_lab_lexing_VTYPE_115:
tmp754 = lexing_polarity_104 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTYPE, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE_pos, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE_neg) ;
return (tmp754) ;
} /* end of [lexing_VTYPE_115] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 46569(line=2312, offs=1) -- 46690(line=2316, offs=64)
*/
ATSstaticdec()
ats_ptr_type
lexing_VTBOX_116 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp755) ;

__ats_lab_lexing_VTBOX_116:
tmp755 = lexing_polarity_104 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTBOX, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE_pos, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE_neg) ;
return (tmp755) ;
} /* end of [lexing_VTBOX_116] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 46720(line=2319, offs=1) -- 46843(line=2323, offs=66)
*/
ATSstaticdec()
ats_ptr_type
lexing_VTFLT_117 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp756) ;

__ats_lab_lexing_VTFLT_117:
tmp756 = lexing_polarity_104 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VTFLT, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE_pos, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE_neg) ;
return (tmp756) ;
} /* end of [lexing_VTFLT_117] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 46876(line=2327, offs=1) -- 47003(line=2331, offs=67)
*/
ATSstaticdec()
ats_ptr_type
lexing_VIEWTYPE_118 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp757) ;

__ats_lab_lexing_VIEWTYPE_118:
tmp757 = lexing_polarity_104 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE_pos, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWTYPE_neg) ;
return (tmp757) ;
} /* end of [lexing_VIEWTYPE_118] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 47036(line=2334, offs=1) -- 47167(line=2338, offs=70)
*/
ATSstaticdec()
ats_ptr_type
lexing_VIEWT0YPE_119 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp758) ;

__ats_lab_lexing_VIEWT0YPE_119:
tmp758 = lexing_polarity_104 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE_pos, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__VIEWT0YPE_neg) ;
return (tmp758) ;
} /* end of [lexing_VIEWT0YPE_119] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 47225(line=2343, offs=5) -- 47323(line=2346, offs=55)
*/
ATSstaticdec()
ats_ptr_type
lexing_LAM_120 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp759) ;

__ats_lab_lexing_LAM_120:
tmp759 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LAM, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LAMAT, '@') ;
return (tmp759) ;
} /* end of [lexing_LAM_120] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 47328(line=2347, offs=5) -- 47429(line=2350, offs=57)
*/
ATSstaticdec()
ats_ptr_type
lexing_LLAM_121 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp760) ;

__ats_lab_lexing_LLAM_121:
tmp760 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LLAM, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LLAMAT, '@') ;
return (tmp760) ;
} /* end of [lexing_LLAM_121] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 47437(line=2352, offs=5) -- 47535(line=2355, offs=55)
*/
ATSstaticdec()
ats_ptr_type
lexing_FIX_122 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp761) ;

__ats_lab_lexing_FIX_122:
tmp761 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FIX, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FIXAT, '@') ;
return (tmp761) ;
} /* end of [lexing_FIX_122] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 47697(line=2368, offs=5) -- 47798(line=2371, offs=57)
*/
ATSstaticdec()
ats_ptr_type
lexing_ADDR_123 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp762) ;

__ats_lab_lexing_ADDR_123:
tmp762 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ADDR, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ADDRAT, '@') ;
return (tmp762) ;
} /* end of [lexing_ADDR_123] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 47806(line=2373, offs=5) -- 47907(line=2376, offs=57)
*/
ATSstaticdec()
ats_ptr_type
lexing_FOLD_124 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp763) ;

__ats_lab_lexing_FOLD_124:
tmp763 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOLD, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FOLDAT, '@') ;
return (tmp763) ;
} /* end of [lexing_FOLD_124] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 47915(line=2378, offs=5) -- 48016(line=2381, offs=57)
*/
ATSstaticdec()
ats_ptr_type
lexing_FREE_125 (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp764) ;

__ats_lab_lexing_FREE_125:
tmp764 = lexing_postfix_103 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FREE, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__FREEAT, '@') ;
return (tmp764) ;
} /* end of [lexing_FREE_125] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 48070(line=2387, offs=3) -- 48911(line=2428, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_alp (ats_ref_type arg0, ats_ref_type arg1, ats_uint_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp765) ;
ATSlocal (ats_int_type, tmp766) ;
ATSlocal (ats_char_type, tmp767) ;
// ATSlocal_void (tmp768) ;
ATSlocal (ats_ptr_type, tmp769) ;
ATSlocal (ats_ptr_type, tmp770) ;
// ATSlocal_void (tmp771) ;
ATSlocal (ats_ptr_type, tmp772) ;
ATSlocal (ats_ptr_type, tmp773) ;
// ATSlocal_void (tmp774) ;
ATSlocal (ats_ptr_type, tmp775) ;
ATSlocal (ats_ptr_type, tmp776) ;
ATSlocal (ats_ptr_type, tmp777) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_alp:
tmp766 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp767 = atspre_char_of_int (tmp766) ;
do {
/* branch: __ats_lab_112 */
__ats_lab_112_0:
if (tmp767 != '<') { goto __ats_lab_113_0 ; }
__ats_lab_112_1:
/* tmp768 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp769 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, arg2) ;
tmp770 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp770)->tag = 146 ;
ats_selptrset_mac(anairiats_sum_8, tmp770, atslab_0, ats_castfn_mac(ats_ptr_type, tmp769)) ;
tmp765 = lexbufpos_token_reset_53 (arg0, arg1, tmp770) ;
break ;

/* branch: __ats_lab_113 */
__ats_lab_113_0:
if (tmp767 != '[') { goto __ats_lab_114_0 ; }
__ats_lab_113_1:
/* tmp771 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp772 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, arg2) ;
tmp773 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp773)->tag = 145 ;
ats_selptrset_mac(anairiats_sum_8, tmp773, atslab_0, ats_castfn_mac(ats_ptr_type, tmp772)) ;
tmp765 = lexbufpos_token_reset_53 (arg0, arg1, tmp773) ;
break ;

/* branch: __ats_lab_114 */
__ats_lab_114_0:
if (tmp767 != '!') { goto __ats_lab_115_0 ; }
__ats_lab_114_1:
/* tmp774 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp775 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, arg2) ;
tmp776 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp776)->tag = 149 ;
ats_selptrset_mac(anairiats_sum_8, tmp776, atslab_0, ats_castfn_mac(ats_ptr_type, tmp775)) ;
tmp765 = lexbufpos_token_reset_53 (arg0, arg1, tmp776) ;
break ;

/* branch: __ats_lab_115 */
__ats_lab_115_0:
__ats_lab_115_1:
tmp777 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, arg2) ;
tmp765 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT2_alp (arg0, arg1, tmp777) ;
break ;
} while (0) ;
return (tmp765) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_alp] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 48996(line=2434, offs=6) -- 53019(line=2578, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT2_alp (ats_ref_type arg0, ats_ref_type arg1, ats_ptr_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp778) ;
ATSlocal (ats_ptr_type, tmp779) ;
ATSlocal (ats_bool_type, tmp780) ;
ATSlocal (ats_int_type, tmp781) ;
// ATSlocal_void (tmp782) ;
ATSlocal (ats_bool_type, tmp783) ;
ATSlocal (ats_int_type, tmp784) ;
// ATSlocal_void (tmp785) ;
ATSlocal (ats_bool_type, tmp786) ;
ATSlocal (ats_int_type, tmp787) ;
// ATSlocal_void (tmp788) ;
// ATSlocal_void (tmp789) ;
ATSlocal (ats_bool_type, tmp790) ;
ATSlocal (ats_int_type, tmp791) ;
// ATSlocal_void (tmp792) ;
ATSlocal (ats_bool_type, tmp793) ;
ATSlocal (ats_int_type, tmp794) ;
// ATSlocal_void (tmp795) ;
// ATSlocal_void (tmp796) ;
// ATSlocal_void (tmp797) ;
// ATSlocal_void (tmp798) ;
// ATSlocal_void (tmp799) ;
// ATSlocal_void (tmp800) ;
// ATSlocal_void (tmp801) ;
// ATSlocal_void (tmp802) ;
// ATSlocal_void (tmp803) ;
// ATSlocal_void (tmp804) ;
// ATSlocal_void (tmp805) ;
ATSlocal (ats_bool_type, tmp806) ;
ATSlocal (ats_int_type, tmp807) ;
// ATSlocal_void (tmp808) ;
// ATSlocal_void (tmp809) ;
// ATSlocal_void (tmp810) ;
// ATSlocal_void (tmp811) ;
// ATSlocal_void (tmp812) ;
// ATSlocal_void (tmp813) ;
// ATSlocal_void (tmp814) ;
// ATSlocal_void (tmp815) ;
// ATSlocal_void (tmp816) ;
// ATSlocal_void (tmp817) ;
// ATSlocal_void (tmp818) ;
// ATSlocal_void (tmp819) ;
ATSlocal (ats_ptr_type, tmp820) ;
ATSlocal (ats_ptr_type, tmp821) ;
// ATSlocal_void (tmp822) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT2_alp:
tmp779 = IDENT_alp_get_lexsym_14 (ats_castfn_mac(ats_ptr_type, arg2)) ;
do {
/* branch: __ats_lab_116 */
__ats_lab_116_0:
if (((ats_sum_ptr_type)tmp779)->tag != 25) { goto __ats_lab_117_0 ; }
__ats_lab_116_1:
tmp781 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("@ype")) ;
tmp780 = atspre_gte_int_int (tmp781, 0) ;
if (!tmp780) { goto __ats_lab_144_1 ; }
/* tmp782 = */ atspre_strptr_free (arg2) ;
tmp778 = lexbufpos_token_reset_53 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABST0YPE) ;
break ;

/* branch: __ats_lab_117 */
__ats_lab_117_0:
if (((ats_sum_ptr_type)tmp779)->tag != 26) { goto __ats_lab_118_0 ; }
__ats_lab_117_1:
tmp784 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("@ype")) ;
tmp783 = atspre_gte_int_int (tmp784, 0) ;
if (!tmp783) { goto __ats_lab_144_1 ; }
/* tmp785 = */ atspre_strptr_free (arg2) ;
tmp778 = lexbufpos_token_reset_53 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWT0YPE) ;
break ;

/* branch: __ats_lab_118 */
__ats_lab_118_0:
if (((ats_sum_ptr_type)tmp779)->tag != 27) { goto __ats_lab_119_0 ; }
__ats_lab_118_1:
tmp787 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("@ype")) ;
tmp786 = atspre_gte_int_int (tmp787, 0) ;
if (!tmp786) { goto __ats_lab_144_1 ; }
/* tmp788 = */ atspre_strptr_free (arg2) ;
tmp778 = lexbufpos_token_reset_53 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__ABSVIEWT0YPE) ;
break ;

/* branch: __ats_lab_119 */
__ats_lab_119_0:
if (((ats_sum_ptr_type)tmp779)->tag != 2) { goto __ats_lab_120_0 ; }
__ats_lab_119_1:
/* tmp789 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_CASE_107 (arg0, arg1) ;
break ;

/* branch: __ats_lab_120 */
__ats_lab_120_0:
if (((ats_sum_ptr_type)tmp779)->tag != 9) { goto __ats_lab_121_0 ; }
__ats_lab_120_1:
tmp791 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("@ype")) ;
tmp790 = atspre_gte_int_int (tmp791, 0) ;
if (!tmp790) { goto __ats_lab_144_1 ; }
/* tmp792 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_T0YPE_112 (arg0, arg1) ;
break ;

/* branch: __ats_lab_121 */
__ats_lab_121_0:
if (((ats_sum_ptr_type)tmp779)->tag != 10) { goto __ats_lab_122_0 ; }
__ats_lab_121_1:
tmp794 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("@ype")) ;
tmp793 = atspre_gte_int_int (tmp794, 0) ;
if (!tmp793) { goto __ats_lab_144_1 ; }
/* tmp795 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_VIEWT0YPE_119 (arg0, arg1) ;
break ;

/* branch: __ats_lab_122 */
__ats_lab_122_0:
if (((ats_sum_ptr_type)tmp779)->tag != 11) { goto __ats_lab_123_0 ; }
__ats_lab_122_1:
/* tmp796 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_PROP_113 (arg0, arg1) ;
break ;

/* branch: __ats_lab_123 */
__ats_lab_123_0:
if (((ats_sum_ptr_type)tmp779)->tag != 12) { goto __ats_lab_124_0 ; }
__ats_lab_123_1:
/* tmp797 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_VIEW_114 (arg0, arg1) ;
break ;

/* branch: __ats_lab_124 */
__ats_lab_124_0:
if (((ats_sum_ptr_type)tmp779)->tag != 13) { goto __ats_lab_125_0 ; }
__ats_lab_124_1:
/* tmp798 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_TYPE_109 (arg0, arg1) ;
break ;

/* branch: __ats_lab_125 */
__ats_lab_125_0:
if (((ats_sum_ptr_type)tmp779)->tag != 14) { goto __ats_lab_126_0 ; }
__ats_lab_125_1:
/* tmp799 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_TBOX_110 (arg0, arg1) ;
break ;

/* branch: __ats_lab_126 */
__ats_lab_126_0:
if (((ats_sum_ptr_type)tmp779)->tag != 15) { goto __ats_lab_127_0 ; }
__ats_lab_126_1:
/* tmp800 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_TFLT_111 (arg0, arg1) ;
break ;

/* branch: __ats_lab_127 */
__ats_lab_127_0:
if (((ats_sum_ptr_type)tmp779)->tag != 17) { goto __ats_lab_128_0 ; }
__ats_lab_127_1:
/* tmp801 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_VTYPE_115 (arg0, arg1) ;
break ;

/* branch: __ats_lab_128 */
__ats_lab_128_0:
if (((ats_sum_ptr_type)tmp779)->tag != 18) { goto __ats_lab_129_0 ; }
__ats_lab_128_1:
/* tmp802 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_VTBOX_116 (arg0, arg1) ;
break ;

/* branch: __ats_lab_129 */
__ats_lab_129_0:
if (((ats_sum_ptr_type)tmp779)->tag != 19) { goto __ats_lab_130_0 ; }
__ats_lab_129_1:
/* tmp803 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_VTFLT_117 (arg0, arg1) ;
break ;

/* branch: __ats_lab_130 */
__ats_lab_130_0:
if (((ats_sum_ptr_type)tmp779)->tag != 20) { goto __ats_lab_131_0 ; }
__ats_lab_130_1:
/* tmp804 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_T0YPE_112 (arg0, arg1) ;
break ;

/* branch: __ats_lab_131 */
__ats_lab_131_0:
if (((ats_sum_ptr_type)tmp779)->tag != 21) { goto __ats_lab_132_0 ; }
__ats_lab_131_1:
/* tmp805 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_VIEWT0YPE_119 (arg0, arg1) ;
break ;

/* branch: __ats_lab_132 */
__ats_lab_132_0:
if (((ats_sum_ptr_type)tmp779)->tag != 22) { goto __ats_lab_133_0 ; }
__ats_lab_132_1:
tmp807 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__testing_literal (arg0, arg1, ATSstrcst("@ype")) ;
tmp806 = atspre_gte_int_int (tmp807, 0) ;
if (!tmp806) { goto __ats_lab_144_1 ; }
/* tmp808 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_VIEWT0YPE_119 (arg0, arg1) ;
break ;

/* branch: __ats_lab_133 */
__ats_lab_133_0:
if (((ats_sum_ptr_type)tmp779)->tag != 23) { goto __ats_lab_134_0 ; }
__ats_lab_133_1:
/* tmp809 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_VIEWTYPE_118 (arg0, arg1) ;
break ;

/* branch: __ats_lab_134 */
__ats_lab_134_0:
if (((ats_sum_ptr_type)tmp779)->tag != 24) { goto __ats_lab_135_0 ; }
__ats_lab_134_1:
/* tmp810 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_VIEWT0YPE_119 (arg0, arg1) ;
break ;

/* branch: __ats_lab_135 */
__ats_lab_135_0:
if (((ats_sum_ptr_type)tmp779)->tag != 1) { goto __ats_lab_136_0 ; }
__ats_lab_135_1:
/* tmp811 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_VAL_108 (arg0, arg1) ;
break ;

/* branch: __ats_lab_136 */
__ats_lab_136_0:
if (((ats_sum_ptr_type)tmp779)->tag != 28) { goto __ats_lab_137_0 ; }
__ats_lab_136_1:
/* tmp812 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_FOR_105 (arg0, arg1) ;
break ;

/* branch: __ats_lab_137 */
__ats_lab_137_0:
if (((ats_sum_ptr_type)tmp779)->tag != 29) { goto __ats_lab_138_0 ; }
__ats_lab_137_1:
/* tmp813 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_WHILE_106 (arg0, arg1) ;
break ;

/* branch: __ats_lab_138 */
__ats_lab_138_0:
if (((ats_sum_ptr_type)tmp779)->tag != 3) { goto __ats_lab_139_0 ; }
__ats_lab_138_1:
/* tmp814 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_ADDR_123 (arg0, arg1) ;
break ;

/* branch: __ats_lab_139 */
__ats_lab_139_0:
if (((ats_sum_ptr_type)tmp779)->tag != 4) { goto __ats_lab_140_0 ; }
__ats_lab_139_1:
/* tmp815 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_FOLD_124 (arg0, arg1) ;
break ;

/* branch: __ats_lab_140 */
__ats_lab_140_0:
if (((ats_sum_ptr_type)tmp779)->tag != 5) { goto __ats_lab_141_0 ; }
__ats_lab_140_1:
/* tmp816 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_FREE_125 (arg0, arg1) ;
break ;

/* branch: __ats_lab_141 */
__ats_lab_141_0:
if (((ats_sum_ptr_type)tmp779)->tag != 7) { goto __ats_lab_142_0 ; }
__ats_lab_141_1:
/* tmp817 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_LAM_120 (arg0, arg1) ;
break ;

/* branch: __ats_lab_142 */
__ats_lab_142_0:
if (((ats_sum_ptr_type)tmp779)->tag != 8) { goto __ats_lab_143_0 ; }
__ats_lab_142_1:
/* tmp818 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_LLAM_121 (arg0, arg1) ;
break ;

/* branch: __ats_lab_143 */
__ats_lab_143_0:
if (((ats_sum_ptr_type)tmp779)->tag != 6) { goto __ats_lab_144_0 ; }
__ats_lab_143_1:
/* tmp819 = */ atspre_strptr_free (arg2) ;
tmp778 = lexing_FIX_122 (arg0, arg1) ;
break ;

/* branch: __ats_lab_144 */
__ats_lab_144_0:
__ats_lab_144_1:
tmp820 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_search (ats_castfn_mac(ats_ptr_type, arg2)) ;
do {
/* branch: __ats_lab_145 */
__ats_lab_145_0:
if (((ats_sum_ptr_type)tmp820)->tag != 0) { goto __ats_lab_146_0 ; }
__ats_lab_145_1:
tmp821 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp821)->tag = 143 ;
ats_selptrset_mac(anairiats_sum_8, tmp821, atslab_0, ats_castfn_mac(ats_ptr_type, arg2)) ;
tmp778 = lexbufpos_token_reset_53 (arg0, arg1, tmp821) ;
break ;

/* branch: __ats_lab_146 */
__ats_lab_146_0:
__ats_lab_146_1:
/* tmp822 = */ atspre_strptr_free (arg2) ;
tmp778 = lexbufpos_token_reset_53 (arg0, arg1, tmp820) ;
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp778) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT2_alp] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 53101(line=2584, offs=3) -- 54590(line=2643, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym (ats_ref_type arg0, ats_ref_type arg1, ats_uint_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp823) ;
ATSlocal (ats_ptr_type, tmp824) ;
ATSlocal (ats_ptr_type, tmp825) ;
// ATSlocal_void (tmp826) ;
// ATSlocal_void (tmp827) ;
// ATSlocal_void (tmp828) ;
// ATSlocal_void (tmp829) ;
// ATSlocal_void (tmp830) ;
ATSlocal (ats_ptr_type, tmp831) ;
ATSlocal (ats_ptr_type, tmp832) ;
// ATSlocal_void (tmp833) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym:
tmp824 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, arg2) ;
tmp825 = IDENT_sym_get_lexsym_16 (ats_castfn_mac(ats_ptr_type, tmp824)) ;
do {
/* branch: __ats_lab_147 */
__ats_lab_147_0:
if (((ats_sum_ptr_type)tmp825)->tag != 30) { goto __ats_lab_148_0 ; }
__ats_lab_147_1:
/* tmp826 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_decby_count (arg1, 1u) ;
/* tmp827 = */ atspre_strptr_free (tmp824) ;
tmp823 = lexbufpos_token_reset_53 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__QMARK) ;
break ;

/* branch: __ats_lab_148 */
__ats_lab_148_0:
if (((ats_sum_ptr_type)tmp825)->tag != 31) { goto __ats_lab_149_0 ; }
__ats_lab_148_1:
/* tmp828 = */ atspre_strptr_free (tmp824) ;
tmp823 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_line (arg0, arg1) ;
break ;

/* branch: __ats_lab_149 */
__ats_lab_149_0:
if (((ats_sum_ptr_type)tmp825)->tag != 32) { goto __ats_lab_150_0 ; }
__ats_lab_149_1:
/* tmp829 = */ atspre_strptr_free (tmp824) ;
tmp823 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_block_c (arg0, arg1) ;
break ;

/* branch: __ats_lab_150 */
__ats_lab_150_0:
if (((ats_sum_ptr_type)tmp825)->tag != 33) { goto __ats_lab_151_0 ; }
__ats_lab_150_1:
/* tmp830 = */ atspre_strptr_free (tmp824) ;
tmp823 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMENT_rest (arg0, arg1) ;
break ;

/* branch: __ats_lab_151 */
__ats_lab_151_0:
__ats_lab_151_1:
tmp831 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_search (ats_castfn_mac(ats_ptr_type, tmp824)) ;
do {
/* branch: __ats_lab_152 */
__ats_lab_152_0:
if (((ats_sum_ptr_type)tmp831)->tag != 0) { goto __ats_lab_153_0 ; }
__ats_lab_152_1:
tmp832 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp832)->tag = 144 ;
ats_selptrset_mac(anairiats_sum_8, tmp832, atslab_0, ats_castfn_mac(ats_ptr_type, tmp824)) ;
tmp823 = lexbufpos_token_reset_53 (arg0, arg1, tmp832) ;
break ;

/* branch: __ats_lab_153 */
__ats_lab_153_0:
__ats_lab_153_1:
/* tmp833 = */ atspre_strptr_free (tmp824) ;
tmp823 = lexbufpos_token_reset_53 (arg0, arg1, tmp831) ;
break ;
} while (0) ;
break ;
} while (0) ;
return (tmp823) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 54671(line=2649, offs=3) -- 55168(line=2675, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_dlr (ats_ref_type arg0, ats_ref_type arg1, ats_uint_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp834) ;
ATSlocal (ats_ptr_type, tmp835) ;
ATSlocal (ats_ptr_type, tmp836) ;
ATSlocal (ats_ptr_type, tmp837) ;
// ATSlocal_void (tmp838) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_dlr:
tmp835 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, arg2) ;
tmp836 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_search (ats_castfn_mac(ats_ptr_type, tmp835)) ;
do {
/* branch: __ats_lab_154 */
__ats_lab_154_0:
if (((ats_sum_ptr_type)tmp836)->tag != 0) { goto __ats_lab_155_0 ; }
__ats_lab_154_1:
tmp837 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp837)->tag = 147 ;
ats_selptrset_mac(anairiats_sum_8, tmp837, atslab_0, ats_castfn_mac(ats_ptr_type, tmp835)) ;
tmp834 = lexbufpos_token_reset_53 (arg0, arg1, tmp837) ;
break ;

/* branch: __ats_lab_155 */
__ats_lab_155_0:
__ats_lab_155_1:
/* tmp838 = */ atspre_strptr_free (tmp835) ;
tmp834 = lexbufpos_token_reset_53 (arg0, arg1, tmp836) ;
break ;
} while (0) ;
return (tmp834) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_dlr] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 55249(line=2681, offs=3) -- 55756(line=2711, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_srp (ats_ref_type arg0, ats_ref_type arg1, ats_uint_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp839) ;
ATSlocal (ats_ptr_type, tmp840) ;
ATSlocal (ats_ptr_type, tmp841) ;
ATSlocal (ats_ptr_type, tmp842) ;
// ATSlocal_void (tmp843) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_srp:
tmp840 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_strptr1 (arg0, arg2) ;
tmp841 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__tnode_search (ats_castfn_mac(ats_ptr_type, tmp840)) ;
do {
/* branch: __ats_lab_156 */
__ats_lab_156_0:
if (((ats_sum_ptr_type)tmp841)->tag != 0) { goto __ats_lab_157_0 ; }
__ats_lab_156_1:
tmp842 = ATS_MALLOC(sizeof(anairiats_sum_8)) ;
((ats_sum_ptr_type)tmp842)->tag = 148 ;
ats_selptrset_mac(anairiats_sum_8, tmp842, atslab_0, ats_castfn_mac(ats_ptr_type, tmp840)) ;
tmp839 = lexbufpos_token_reset_53 (arg0, arg1, tmp842) ;
break ;

/* branch: __ats_lab_157 */
__ats_lab_157_0:
__ats_lab_157_1:
/* tmp843 = */ atspre_strptr_free (tmp840) ;
tmp839 = lexbufpos_token_reset_53 (arg0, arg1, tmp841) ;
break ;
} while (0) ;
return (tmp839) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_srp] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 55841(line=2717, offs=3) -- 56049(line=2723, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_deciexp (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp844) ;
ATSlocal (ats_uint_type, tmp845) ;
ATSlocal (ats_ptr_type, tmp846) ;
ATSlocal (ats_ptr_type, tmp847) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_deciexp:
tmp845 = testing_floatspseq0_47 (arg0, arg1) ;
tmp846 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr1 (arg0, arg1) ;
tmp847 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp847)->tag = 152 ;
ats_selptrset_mac(anairiats_sum_9, tmp847, atslab_0, 10) ;
ats_selptrset_mac(anairiats_sum_9, tmp847, atslab_1, ats_castfn_mac(ats_ptr_type, tmp846)) ;
ats_selptrset_mac(anairiats_sum_9, tmp847, atslab_2, tmp845) ;
tmp844 = lexbufpos_token_reset_53 (arg0, arg1, tmp847) ;
return (tmp844) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_deciexp] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 56138(line=2729, offs=3) -- 56346(line=2735, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_hexiexp (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp848) ;
ATSlocal (ats_uint_type, tmp849) ;
ATSlocal (ats_ptr_type, tmp850) ;
ATSlocal (ats_ptr_type, tmp851) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_hexiexp:
tmp849 = testing_floatspseq0_47 (arg0, arg1) ;
tmp850 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr1 (arg0, arg1) ;
tmp851 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp851)->tag = 152 ;
ats_selptrset_mac(anairiats_sum_9, tmp851, atslab_0, 16) ;
ats_selptrset_mac(anairiats_sum_9, tmp851, atslab_1, ats_castfn_mac(ats_ptr_type, tmp850)) ;
ats_selptrset_mac(anairiats_sum_9, tmp851, atslab_2, tmp849) ;
tmp848 = lexbufpos_token_reset_53 (arg0, arg1, tmp851) ;
return (tmp848) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_hexiexp] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 56429(line=2741, offs=3) -- 56958(line=2765, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_dec (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp852) ;
ATSlocal (ats_bool_type, tmp853) ;
ATSlocal (ats_int_type, tmp854) ;
ATSlocal (ats_bool_type, tmp855) ;
ATSlocal (ats_int_type, tmp856) ;
ATSlocal (ats_uint_type, tmp857) ;
ATSlocal (ats_ptr_type, tmp858) ;
ATSlocal (ats_ptr_type, tmp859) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_dec:
do {
/* branch: __ats_lab_158 */
__ats_lab_158_0:
__ats_lab_158_1:
tmp854 = testing_deciexp_50 (arg0, arg1) ;
tmp853 = atspre_gte_int_int (tmp854, 0) ;
if (!tmp853) { goto __ats_lab_159_1 ; }
tmp852 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_deciexp (arg0, arg1) ;
break ;

/* branch: __ats_lab_159 */
__ats_lab_159_0:
__ats_lab_159_1:
tmp856 = testing_fexponent_48 (arg0, arg1) ;
tmp855 = atspre_gte_int_int (tmp856, 0) ;
if (!tmp855) { goto __ats_lab_160_1 ; }
tmp852 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_deciexp (arg0, arg1) ;
break ;

/* branch: __ats_lab_160 */
__ats_lab_160_0:
__ats_lab_160_1:
tmp857 = testing_intspseq0_46 (arg0, arg1) ;
tmp858 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr1 (arg0, arg1) ;
tmp859 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp859)->tag = 150 ;
ats_selptrset_mac(anairiats_sum_9, tmp859, atslab_0, 10) ;
ats_selptrset_mac(anairiats_sum_9, tmp859, atslab_1, ats_castfn_mac(ats_ptr_type, tmp858)) ;
ats_selptrset_mac(anairiats_sum_9, tmp859, atslab_2, tmp857) ;
tmp852 = lexbufpos_token_reset_53 (arg0, arg1, tmp859) ;
break ;
} while (0) ;
return (tmp852) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_dec] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 57035(line=2771, offs=3) -- 57384(line=2795, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_oct (ats_ref_type arg0, ats_ref_type arg1, ats_uint_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp860) ;
ATSlocal (ats_bool_type, tmp861) ;
ATSlocal (ats_uint_type, tmp862) ;
ATSlocal (ats_ptr_type, tmp863) ;
ATSlocal (ats_ptr_type, tmp864) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_oct:
tmp861 = atspre_eq_uint_uint (arg2, 0u) ;
if (tmp861) {
tmp860 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_dec (arg0, arg1) ;
} else {
tmp862 = testing_intspseq0_46 (arg0, arg1) ;
tmp863 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr1 (arg0, arg1) ;
tmp864 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp864)->tag = 150 ;
ats_selptrset_mac(anairiats_sum_9, tmp864, atslab_0, 8) ;
ats_selptrset_mac(anairiats_sum_9, tmp864, atslab_1, ats_castfn_mac(ats_ptr_type, tmp863)) ;
ats_selptrset_mac(anairiats_sum_9, tmp864, atslab_2, tmp862) ;
tmp860 = lexbufpos_token_reset_53 (arg0, arg1, tmp864) ;
} /* end of [if] */
return (tmp860) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_oct] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 57461(line=2801, offs=3) -- 58520(line=2842, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_hex (ats_ref_type arg0, ats_ref_type arg1, ats_uint_type arg2) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp865) ;
ATSlocal (ats_bool_type, tmp866) ;
ATSlocal (ats_int_type, tmp867) ;
ATSlocal (ats_bool_type, tmp868) ;
ATSlocal (ats_int_type, tmp869) ;
// ATSlocal_void (tmp870) ;
ATSlocal (ats_bool_type, tmp871) ;
ATSlocal (ats_ptr_type, tmp872) ;
ATSlocal (ats_ptr_type, tmp873) ;
ATSlocal (ats_ptr_type, tmp874) ;
ATSlocal (ats_uint_type, tmp875) ;
ATSlocal (ats_ptr_type, tmp876) ;
// ATSlocal_void (tmp877) ;
ATSlocal (ats_bool_type, tmp878) ;
ATSlocal (ats_ptr_type, tmp879) ;
ATSlocal (ats_ptr_type, tmp880) ;
ATSlocal (ats_ptr_type, tmp881) ;
ATSlocal (ats_ptr_type, tmp882) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_hex:
do {
/* branch: __ats_lab_161 */
__ats_lab_161_0:
__ats_lab_161_1:
tmp867 = testing_hexiexp_51 (arg0, arg1, arg2) ;
tmp866 = atspre_gte_int_int (tmp867, 0) ;
if (!tmp866) { goto __ats_lab_162_1 ; }
tmp865 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_hexiexp (arg0, arg1) ;
break ;

/* branch: __ats_lab_162 */
__ats_lab_162_0:
__ats_lab_162_1:
tmp869 = testing_fexponent_bin_49 (arg0, arg1) ;
tmp868 = atspre_gte_int_int (tmp869, 0) ;
if (!tmp868) { goto __ats_lab_163_1 ; }
tmp871 = atspre_eq_uint_uint (arg2, 0u) ;
if (tmp871) {
tmp872 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, arg1) ;
tmp874 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_FINTFRAC_missing_13) ;
tmp873 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp872, tmp874) ;
/* tmp870 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp873) ;
} else {
/* empty */
} /* end of [if] */
tmp865 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_FLOAT_hexiexp (arg0, arg1) ;
break ;

/* branch: __ats_lab_163 */
__ats_lab_163_0:
__ats_lab_163_1:
tmp875 = testing_intspseq0_46 (arg0, arg1) ;
tmp876 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_strptr1 (arg0, arg1) ;
tmp878 = atspre_eq_uint_uint (arg2, 0u) ;
if (tmp878) {
tmp879 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, arg1) ;
tmp881 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__LE_IDIGITS_empty_10) ;
tmp880 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp879, tmp881) ;
/* tmp877 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp880) ;
} else {
/* empty */
} /* end of [if] */
tmp882 = ATS_MALLOC(sizeof(anairiats_sum_9)) ;
((ats_sum_ptr_type)tmp882)->tag = 150 ;
ats_selptrset_mac(anairiats_sum_9, tmp882, atslab_0, 16) ;
ats_selptrset_mac(anairiats_sum_9, tmp882, atslab_1, ats_castfn_mac(ats_ptr_type, tmp876)) ;
ats_selptrset_mac(anairiats_sum_9, tmp882, atslab_2, tmp875) ;
tmp865 = lexbufpos_token_reset_53 (arg0, arg1, tmp882) ;
break ;
} while (0) ;
return (tmp865) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_hex] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 58657(line=2852, offs=3) -- 59257(line=2885, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_ZERO (ats_ref_type arg0, ats_ref_type arg1) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp883) ;
ATSlocal (ats_int_type, tmp884) ;
ATSlocal (ats_bool_type, tmp885) ;
ATSlocal (ats_char_type, tmp886) ;
ATSlocal (ats_bool_type, tmp887) ;
// ATSlocal_void (tmp888) ;
ATSlocal (ats_uint_type, tmp889) ;
ATSlocal (ats_uint_type, tmp890) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_ZERO:
tmp884 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_char (arg0, arg1) ;
tmp885 = atspre_gte_int_int (tmp884, 0) ;
if (tmp885) {
tmp886 = atspre_char_of_int (tmp884) ;
do {
/* branch: __ats_lab_164 */
__ats_lab_164_0:
__ats_lab_164_1:
tmp887 = xX_test_21 (tmp886) ;
if (!tmp887) { goto __ats_lab_165_1 ; }
/* tmp888 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_count (arg1, 1u) ;
tmp889 = testing_xdigitseq0_45 (arg0, arg1) ;
tmp883 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_hex (arg0, arg1, tmp889) ;
break ;

/* branch: __ats_lab_165 */
__ats_lab_165_0:
__ats_lab_165_1:
tmp890 = testing_octalseq0_41 (arg0, arg1) ;
tmp883 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_oct (arg0, arg1, tmp890) ;
break ;
} while (0) ;
} else {
tmp883 = lexbufpos_token_reset_53 (arg0, arg1, _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__INTZERO) ;
} /* end of [if] */
return (tmp883) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_ZERO] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 59334(line=2891, offs=3) -- 61806(line=2992, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token (ats_ref_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp891) ;
ATSlocal (pats_position_struct, tmp892) ;
// ATSlocal_void (tmp893) ;
ATSlocal (ats_uint_type, tmp894) ;
// ATSlocal_void (tmp895) ;
// ATSlocal_void (tmp896) ;
ATSlocal (ats_int_type, tmp897) ;
ATSlocal (ats_bool_type, tmp898) ;
ATSlocal (ats_char_type, tmp899) ;
// ATSlocal_void (tmp900) ;
ATSlocal (ats_bool_type, tmp901) ;
ATSlocal (ats_bool_type, tmp902) ;
ATSlocal (ats_ptr_type, tmp903) ;
ATSlocal (ats_bool_type, tmp904) ;
ATSlocal (ats_ptr_type, tmp905) ;
ATSlocal (ats_bool_type, tmp906) ;
ATSlocal (ats_ptr_type, tmp907) ;
ATSlocal (ats_bool_type, tmp908) ;
ATSlocal (ats_ptr_type, tmp909) ;
ATSlocal (ats_bool_type, tmp910) ;
ATSlocal (ats_ptr_type, tmp911) ;
ATSlocal (ats_bool_type, tmp912) ;
ATSlocal (ats_bool_type, tmp913) ;
ATSlocal (ats_ptr_type, tmp914) ;
ATSlocal (ats_bool_type, tmp915) ;
ATSlocal (ats_bool_type, tmp916) ;
ATSlocal (ats_bool_type, tmp917) ;
ATSlocal (ats_bool_type, tmp918) ;
ATSlocal (ats_bool_type, tmp919) ;
ATSlocal (ats_bool_type, tmp920) ;
ATSlocal (ats_bool_type, tmp921) ;
ATSlocal (ats_bool_type, tmp922) ;
ATSlocal (ats_bool_type, tmp923) ;
ATSlocal (ats_bool_type, tmp924) ;
ATSlocal (ats_ptr_type, tmp925) ;
ATSlocal (ats_bool_type, tmp926) ;
ATSlocal (ats_uint_type, tmp927) ;
ATSlocal (ats_uint_type, tmp928) ;
ATSlocal (ats_bool_type, tmp929) ;
ATSlocal (ats_uint_type, tmp930) ;
ATSlocal (ats_uint_type, tmp931) ;
ATSlocal (ats_bool_type, tmp932) ;
ATSlocal (ats_bool_type, tmp933) ;
ATSlocal (ats_uint_type, tmp934) ;
ATSlocal (ats_ptr_type, tmp935) ;
ATSlocal (ats_ptr_type, tmp936) ;
ATSlocal (ats_ptr_type, tmp937) ;
// ATSlocal_void (tmp938) ;
// ATSlocal_void (tmp939) ;
ATSlocal (ats_ptr_type, tmp940) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token:
/* pats_position_struct tmp892 ; */
/* tmp893 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_position (arg0, (&tmp892)) ;
tmp894 = testing_blankseq0_34 (arg0, (&tmp892)) ;
/* tmp895 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_nspace (arg0, ats_castfn_mac(ats_int_type, tmp894)) ;
/* tmp896 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_position (arg0, (&tmp892)) ;
tmp897 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_get_char (arg0, 0u) ;
tmp898 = atspre_gte_int_int (tmp897, 0) ;
if (tmp898) {
tmp899 = atspre_char_of_int (tmp897) ;
/* tmp900 = */ _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__position_incby_char ((&tmp892), tmp897) ;
do {
/* branch: __ats_lab_166 */
__ats_lab_166_0:
__ats_lab_166_1:
tmp901 = atspre_eq_char_char (tmp899, '(') ;
if (!tmp901) { goto __ats_lab_167_1 ; }
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_LPAREN (arg0, (&tmp892)) ;
break ;

/* branch: __ats_lab_167 */
__ats_lab_167_0:
__ats_lab_167_1:
tmp902 = atspre_eq_char_char (tmp899, ')') ;
if (!tmp902) { goto __ats_lab_168_1 ; }
tmp903 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_RPAREN_158) ;
tmp891 = lexbufpos_token_reset_53 (arg0, (&tmp892), tmp903) ;
break ;

/* branch: __ats_lab_168 */
__ats_lab_168_0:
__ats_lab_168_1:
tmp904 = atspre_eq_char_char (tmp899, '[') ;
if (!tmp904) { goto __ats_lab_169_1 ; }
tmp905 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LBRACKET_159) ;
tmp891 = lexbufpos_token_reset_53 (arg0, (&tmp892), tmp905) ;
break ;

/* branch: __ats_lab_169 */
__ats_lab_169_0:
__ats_lab_169_1:
tmp906 = atspre_eq_char_char (tmp899, ']') ;
if (!tmp906) { goto __ats_lab_170_1 ; }
tmp907 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_RBRACKET_160) ;
tmp891 = lexbufpos_token_reset_53 (arg0, (&tmp892), tmp907) ;
break ;

/* branch: __ats_lab_170 */
__ats_lab_170_0:
__ats_lab_170_1:
tmp908 = atspre_eq_char_char (tmp899, '{') ;
if (!tmp908) { goto __ats_lab_171_1 ; }
tmp909 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_LBRACE_161) ;
tmp891 = lexbufpos_token_reset_53 (arg0, (&tmp892), tmp909) ;
break ;

/* branch: __ats_lab_171 */
__ats_lab_171_0:
__ats_lab_171_1:
tmp910 = atspre_eq_char_char (tmp899, '}') ;
if (!tmp910) { goto __ats_lab_172_1 ; }
tmp911 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_RBRACE_162) ;
tmp891 = lexbufpos_token_reset_53 (arg0, (&tmp892), tmp911) ;
break ;

/* branch: __ats_lab_172 */
__ats_lab_172_0:
__ats_lab_172_1:
tmp912 = atspre_eq_char_char (tmp899, ',') ;
if (!tmp912) { goto __ats_lab_173_1 ; }
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COMMA (arg0, (&tmp892)) ;
break ;

/* branch: __ats_lab_173 */
__ats_lab_173_0:
__ats_lab_173_1:
tmp913 = atspre_eq_char_char (tmp899, ';') ;
if (!tmp913) { goto __ats_lab_174_1 ; }
tmp914 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_SEMICOLON_156) ;
tmp891 = lexbufpos_token_reset_53 (arg0, (&tmp892), tmp914) ;
break ;

/* branch: __ats_lab_174 */
__ats_lab_174_0:
__ats_lab_174_1:
tmp915 = atspre_eq_char_char (tmp899, '@') ;
if (!tmp915) { goto __ats_lab_175_1 ; }
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_AT (arg0, (&tmp892)) ;
break ;

/* branch: __ats_lab_175 */
__ats_lab_175_0:
__ats_lab_175_1:
tmp916 = atspre_eq_char_char (tmp899, ':') ;
if (!tmp916) { goto __ats_lab_176_1 ; }
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_COLON (arg0, (&tmp892)) ;
break ;

/* branch: __ats_lab_176 */
__ats_lab_176_0:
__ats_lab_176_1:
tmp917 = atspre_eq_char_char (tmp899, '.') ;
if (!tmp917) { goto __ats_lab_177_1 ; }
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DOT (arg0, (&tmp892)) ;
break ;

/* branch: __ats_lab_177 */
__ats_lab_177_0:
__ats_lab_177_1:
tmp918 = atspre_eq_char_char (tmp899, '$') ;
if (!tmp918) { goto __ats_lab_178_1 ; }
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DOLLAR (arg0, (&tmp892)) ;
break ;

/* branch: __ats_lab_178 */
__ats_lab_178_0:
__ats_lab_178_1:
tmp919 = atspre_eq_char_char (tmp899, '#') ;
if (!tmp919) { goto __ats_lab_179_1 ; }
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_SHARP (arg0, (&tmp892)) ;
break ;

/* branch: __ats_lab_179 */
__ats_lab_179_0:
__ats_lab_179_1:
tmp920 = atspre_eq_char_char (tmp899, '%') ;
if (!tmp920) { goto __ats_lab_180_1 ; }
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_PERCENT (arg0, (&tmp892)) ;
break ;

/* branch: __ats_lab_180 */
__ats_lab_180_0:
__ats_lab_180_1:
tmp921 = atspre_eq_char_char (tmp899, '\'') ;
if (!tmp921) { goto __ats_lab_181_1 ; }
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_QUOTE (arg0, (&tmp892)) ;
break ;

/* branch: __ats_lab_181 */
__ats_lab_181_0:
__ats_lab_181_1:
tmp922 = atspre_eq_char_char (tmp899, '"') ;
if (!tmp922) { goto __ats_lab_182_1 ; }
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_DQUOTE (arg0, (&tmp892)) ;
break ;

/* branch: __ats_lab_182 */
__ats_lab_182_0:
__ats_lab_182_1:
tmp923 = atspre_eq_char_char (tmp899, '`') ;
if (!tmp923) { goto __ats_lab_183_1 ; }
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_BQUOTE (arg0, (&tmp892)) ;
break ;

/* branch: __ats_lab_183 */
__ats_lab_183_0:
__ats_lab_183_1:
tmp924 = atspre_eq_char_char (tmp899, '\\') ;
if (!tmp924) { goto __ats_lab_184_1 ; }
tmp925 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_BACKSLASH_5) ;
tmp891 = lexbufpos_token_reset_53 (arg0, (&tmp892), tmp925) ;
break ;

/* branch: __ats_lab_184 */
__ats_lab_184_0:
__ats_lab_184_1:
tmp926 = IDENTFST_test_18 (tmp899) ;
if (!tmp926) { goto __ats_lab_185_1 ; }
tmp927 = testing_identrstseq0_39 (arg0, (&tmp892)) ;
tmp928 = atspre_succ_uint (tmp927) ;
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_alp (arg0, (&tmp892), tmp928) ;
break ;

/* branch: __ats_lab_185 */
__ats_lab_185_0:
__ats_lab_185_1:
tmp929 = SYMBOLIC_test_20 (tmp899) ;
if (!tmp929) { goto __ats_lab_186_1 ; }
tmp930 = testing_symbolicseq0_40 (arg0, (&tmp892)) ;
tmp931 = atspre_succ_uint (tmp930) ;
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_IDENT_sym (arg0, (&tmp892), tmp931) ;
break ;

/* branch: __ats_lab_186 */
__ats_lab_186_0:
__ats_lab_186_1:
tmp932 = atspre_eq_char_char (tmp899, '0') ;
if (!tmp932) { goto __ats_lab_187_1 ; }
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_ZERO (arg0, (&tmp892)) ;
break ;

/* branch: __ats_lab_187 */
__ats_lab_187_0:
__ats_lab_187_1:
tmp933 = DIGIT_test_22 (tmp899) ;
if (!tmp933) { goto __ats_lab_188_1 ; }
tmp934 = testing_digitseq0_44 (arg0, (&tmp892)) ;
tmp891 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__lexing_INT_dec (arg0, (&tmp892)) ;
break ;

/* branch: __ats_lab_188 */
__ats_lab_188_0:
__ats_lab_188_1:
tmp935 = _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbufpos_get_location (arg0, (&tmp892)) ;
tmp937 = ATS_MALLOC(sizeof(anairiats_sum_3)) ;
((ats_sum_ptr_type)tmp937)->tag = 14 ;
ats_selptrset_mac(anairiats_sum_3, tmp937, atslab_0, tmp899) ;
tmp936 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexerr_make (tmp935, tmp937) ;
/* tmp938 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__the_lexerrlst_add (tmp936) ;
/* tmp939 = */ _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__lexbuf_set_position (arg0, (&tmp892)) ;
arg0 = arg0 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token ; // tail call
break ;
} while (0) ;
} else {
tmp940 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EOF_178) ;
tmp891 = lexbufpos_token_reset_53 (arg0, (&tmp892), tmp940) ;
} /* end of [if] */
return (tmp891) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token] */

/*
// /tmp/ATS-Postiats/src/pats_lexing.dats: 61895(line=2998, offs=3) -- 62267(line=3018, offs=4)
*/
ATSglobaldec()
ats_ptr_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token_ncmnt (ats_ref_type arg0) {
/* local vardec */
ATSlocal (ats_ptr_type, tmp941) ;
ATSlocal (ats_ptr_type, tmp942) ;
ATSlocal (ats_ptr_type, tmp943) ;
ATSlocal (ats_ptr_type, tmp944) ;
ATSlocal (ats_ptr_type, tmp945) ;

__ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token_ncmnt:
tmp942 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token (arg0) ;
tmp943 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp942), atslab_token_node) ;
do {
/* branch: __ats_lab_189 */
__ats_lab_189_0:
if (((ats_sum_ptr_type)tmp943)->tag != 174) { goto __ats_lab_190_0 ; }
__ats_lab_189_1:
arg0 = arg0 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token_ncmnt ; // tail call
break ;

/* branch: __ats_lab_190 */
__ats_lab_190_0:
if (((ats_sum_ptr_type)tmp943)->tag != 176) { goto __ats_lab_191_0 ; }
__ats_lab_190_1:
arg0 = arg0 ;
goto __ats_lab__2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token_ncmnt ; // tail call
break ;

/* branch: __ats_lab_191 */
__ats_lab_191_0:
if (((ats_sum_ptr_type)tmp943)->tag != 175) { goto __ats_lab_192_0 ; }
__ats_lab_191_1:
tmp944 = ats_selbox_mac(ats_castptr_mac(anairiats_rec_4, tmp942), atslab_token_loc) ;
tmp945 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__T_EOF_178) ;
tmp941 = _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__token_make (tmp944, tmp945) ;
break ;

/* branch: __ats_lab_192 */
__ats_lab_192_0:
__ats_lab_192_1:
tmp941 = tmp942 ;
break ;
} while (0) ;
return (tmp941) ;
} /* end of [_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__lexing_next_token_ncmnt] */

/* static load function */

// extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__staload (void) ;
extern ats_void_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__staload (void) ;
extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__staload (void) ;
extern ats_void_type ATS_2d0_2e2_2e12_2libc_2SATS_2string_2esats__staload (void) ;
// extern ats_void_type ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__staload (void) ;
extern ats_void_type ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_arr_2edats__staload (void) ;
extern ats_void_type ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__staload (void) ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__staload () {
static int _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__staload_flag = 0 ;
if (_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__staload_flag) return ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__staload_flag = 1 ;

// _2tmp_2ATS_2dPostiats_2src_2pats_atspre_2edats__staload () ;
// ATS_2d0_2e2_2e12_2prelude_2SATS_2unsafe_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_utils_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_location_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexbuf_2esats__staload () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2esats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__staload () ;
ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__staload () ;
ATS_2d0_2e2_2e12_2libc_2SATS_2string_2esats__staload () ;
// ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__staload () ;
ATS_2d0_2e2_2e12_2libats_2DATS_2linqueue_arr_2edats__staload () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__staload () ;

_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_NONE_0.tag = 0 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VAL_1.tag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_CASE_2.tag = 2 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ADDR_3.tag = 3 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FOLD_4.tag = 4 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FREE_5.tag = 5 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FIX_6.tag = 6 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_LAM_7.tag = 7 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_LLAM_8.tag = 8 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_T_9.tag = 9 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VT_10.tag = 10 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_PROP_11.tag = 11 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEW_12.tag = 12 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TYPE_13.tag = 13 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TBOX_14.tag = 14 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TFLT_15.tag = 15 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TYPES_16.tag = 16 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VTYPE_17.tag = 17 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VTBOX_18.tag = 18 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VTFLT_19.tag = 19 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_T0YPE_20.tag = 20 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VT0YPE_21.tag = 21 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEWT_22.tag = 22 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEWTYPE_23.tag = 23 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEWT0YPE_24.tag = 24 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ABST_25.tag = 25 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ABSVT_26.tag = 26 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ABSVIEWT_27.tag = 27 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FOR_28.tag = 28 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_WHILE_29.tag = 29 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_QMARKGT_30.tag = 30 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_SLASH2_31.tag = 31 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_SLASHSTAR_32.tag = 32 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_SLASH4_33.tag = 33 ;
return ;
} /* staload function */

/* dynamic load function */

// dynload flag declaration
extern ats_int_type _2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__dynload_flag ;

ats_void_type
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__dynload () {
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__dynload_flag = 1 ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__staload () ;

#ifdef _ATS_PROOFCHECK
ATS_2d0_2e2_2e12_2prelude_2SATS_2extern_2esats__minus_addback_prfck () ;
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 () ;
ATS_2d0_2e2_2e12_2libats_2SATS_2linqueue_arr_2esats__lemma_queue_param_prfck () ;
ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__Opt_none_prfck () ;
ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__Opt_some_prfck () ;
ATS_2d0_2e2_2e12_2libats_2SATS_2hashtable_linprb_2esats__Opt_encode_prfck () ;
ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__hashtbl_v_split_prfck () ;
ATS_2d0_2e2_2e12_2libats_2DATS_2hashtable_linprb_2edats__hashtbl_v_unsplit_prfck () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats____assert_prfck () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats____assert1_prfck () ;
_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats____assert2_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2SATS_2deque_arr_2esats__lemma_deque_param_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_encode_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_decode_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_v_clear_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_insert_beg_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_insert_end_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_remove_beg_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats__DEQUEarr_remove_end_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
ATS_2d0_2e2_2e12_2libats_2ngc_2DATS_2deque_arr_2edats____assert_prfck () ;
#endif /* _ATS_PROOFCHECK */

/* marking static variables for GC */
ATS_GC_MARKROOT(&statmp14, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp84, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp86, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp88, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp90, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp92, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp94, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp96, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp98, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp100, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp102, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp104, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp106, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp108, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp110, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp112, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp114, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp116, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp118, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp120, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp122, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp124, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp126, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp128, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp130, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp132, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp134, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp136, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp138, sizeof(ats_ptr_type)) ;
ATS_GC_MARKROOT(&statmp140, sizeof(ats_ptr_type)) ;

/* marking external values for GC */

/* code for dynamic loading */
statmp14 = atslib_hashtbl_make_hint__linprb_string_2clexsym (ats_castfn_mac(ats_clo_ref_type, atspre_null_ptr), ats_castfn_mac(ats_clo_ref_type, atspre_null_ptr), 53) ;
statmp84 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VAL_1) ;
/* statmp83 = */ insert_7 (statmp14, ATSstrcst("val"), statmp84) ;
statmp86 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_CASE_2) ;
/* statmp85 = */ insert_7 (statmp14, ATSstrcst("case"), statmp86) ;
statmp88 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ADDR_3) ;
/* statmp87 = */ insert_7 (statmp14, ATSstrcst("addr"), statmp88) ;
statmp90 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FOLD_4) ;
/* statmp89 = */ insert_7 (statmp14, ATSstrcst("fold"), statmp90) ;
statmp92 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FREE_5) ;
/* statmp91 = */ insert_7 (statmp14, ATSstrcst("free"), statmp92) ;
statmp94 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_LAM_7) ;
/* statmp93 = */ insert_7 (statmp14, ATSstrcst("lam"), statmp94) ;
statmp96 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_LLAM_8) ;
/* statmp95 = */ insert_7 (statmp14, ATSstrcst("llam"), statmp96) ;
statmp98 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FIX_6) ;
/* statmp97 = */ insert_7 (statmp14, ATSstrcst("fix"), statmp98) ;
statmp100 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_T_9) ;
/* statmp99 = */ insert_7 (statmp14, ATSstrcst("t"), statmp100) ;
statmp102 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VT_10) ;
/* statmp101 = */ insert_7 (statmp14, ATSstrcst("vt"), statmp102) ;
statmp104 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_PROP_11) ;
/* statmp103 = */ insert_7 (statmp14, ATSstrcst("prop"), statmp104) ;
statmp106 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEW_12) ;
/* statmp105 = */ insert_7 (statmp14, ATSstrcst("view"), statmp106) ;
statmp108 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TYPE_13) ;
/* statmp107 = */ insert_7 (statmp14, ATSstrcst("type"), statmp108) ;
statmp110 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TBOX_14) ;
/* statmp109 = */ insert_7 (statmp14, ATSstrcst("tbox"), statmp110) ;
statmp112 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TFLT_15) ;
/* statmp111 = */ insert_7 (statmp14, ATSstrcst("tflt"), statmp112) ;
statmp114 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_TYPES_16) ;
/* statmp113 = */ insert_7 (statmp14, ATSstrcst("types"), statmp114) ;
statmp116 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VTYPE_17) ;
/* statmp115 = */ insert_7 (statmp14, ATSstrcst("vtype"), statmp116) ;
statmp118 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VTBOX_18) ;
/* statmp117 = */ insert_7 (statmp14, ATSstrcst("vtbox"), statmp118) ;
statmp120 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VTFLT_19) ;
/* statmp119 = */ insert_7 (statmp14, ATSstrcst("vtflt"), statmp120) ;
statmp122 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_T0YPE_20) ;
/* statmp121 = */ insert_7 (statmp14, ATSstrcst("t0ype"), statmp122) ;
statmp124 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VT0YPE_21) ;
/* statmp123 = */ insert_7 (statmp14, ATSstrcst("vt0ype"), statmp124) ;
statmp126 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEWT_22) ;
/* statmp125 = */ insert_7 (statmp14, ATSstrcst("viewt"), statmp126) ;
statmp128 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEWTYPE_23) ;
/* statmp127 = */ insert_7 (statmp14, ATSstrcst("viewtype"), statmp128) ;
statmp130 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_VIEWT0YPE_24) ;
/* statmp129 = */ insert_7 (statmp14, ATSstrcst("viewt0ype"), statmp130) ;
statmp132 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ABST_25) ;
/* statmp131 = */ insert_7 (statmp14, ATSstrcst("abst"), statmp132) ;
statmp134 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ABSVT_26) ;
/* statmp133 = */ insert_7 (statmp14, ATSstrcst("absvt"), statmp134) ;
statmp136 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_ABSVIEWT_27) ;
/* statmp135 = */ insert_7 (statmp14, ATSstrcst("absviewt"), statmp136) ;
statmp138 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_FOR_28) ;
/* statmp137 = */ insert_7 (statmp14, ATSstrcst("for"), statmp138) ;
statmp140 = (ats_sum_ptr_type)(&_2tmp_2ATS_2dPostiats_2src_2pats_lexing_2edats__LS_WHILE_29) ;
/* statmp139 = */ insert_7 (statmp14, ATSstrcst("while"), statmp140) ;
return ;
} /* end of [dynload function] */

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

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

/* end of [pats_lexing_dats.c] */
